C# - SMTP Gmail在发送时挂起。第一次工作

时间:2013-10-24 15:34:59

标签: c# email smtp gmail port

我目前正在开发一个应用程序,其中从服务器下载文件,将其附加到电子邮件并将其发送到输入的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,以管理员身份运行并重新启动计算机。只运行一次让我觉得它有某种缓存问题,但是什么呢?

我感谢所有提示和建议,火了!

提前致谢, 弗雷德里克

2 个答案:

答案 0 :(得分:1)

您的代码有效,问题是您使用的是错误的端口。您必须使用端口587

答案 1 :(得分:0)

我正在尝试使用Powerbuilder发送smtp邮件,并遇到了同样悬而未决的情况。不确定它是否对C ++平台有帮助,但我解决问题的方法是放置一个较新版本的cl32.dll(当然,谈论Windows)。