我目前正在开发一个应用程序,其中从服务器下载文件,将其附加到电子邮件并将其发送到输入的gmail-address。我第一次尝试它,它工作正常。当我第二次尝试时,悬挂开始了,从那时起它就没有用了。
这是我的代码:
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
MailMessage mail = new MailMessage();
mail.From = new MailAddress(fran);
mail.To.Add(till);
mail.Subject = amne;
mail.Body = text;
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("file.txt");
mail.Attachments.Add(attachment);
SmtpServer.Port = 465;
SmtpServer.Timeout = 30000;
SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential(user, pw);
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
SmtpServer.Dispose();
mail.Dispose();
我尝试过端口587,465和25,以及在Windows防火墙中打开它们。我试过禁用Avast! AntiVirus,以管理员身份运行并重新启动计算机。只运行一次让我觉得它有某种缓存问题,但是什么呢?
我感谢所有提示和建议,火了!
提前致谢, 弗雷德里克
答案 0 :(得分:1)
您的代码有效,问题是您使用的是错误的端口。您必须使用端口587
答案 1 :(得分:0)
我正在尝试使用Powerbuilder发送smtp邮件,并遇到了同样悬而未决的情况。不确定它是否对C ++平台有帮助,但我解决问题的方法是放置一个较新版本的cl32.dll(当然,谈论Windows)。