MailMessage System.Net.Mail.SmtpException,尝试通过C#表单发送电子邮件时出错

时间:2013-10-26 20:44:46

标签: c# email

嗨我卡住并在尝试设置发送电子邮件时不断收到错误。

这是我的using.system:

using System.Net;
using System.Web;
using System.Net.Mail;

然后我在发送电子邮件按钮中输入此代码。

private void BtnEmail_Click(object sender, EventArgs e)
        {


            try
            {
                string to = "myEmail@gmail.com";
                string from = "myEmail@gmail.com";
                string subject = "Test email";
                string body = @"This is a test email";


                MailMessage mail = new MailMessage(from, to, subject, body);
                SmtpClient client = new SmtpClient("smtp.gmail.com");
                client.Credentials = new NetworkCredential ("myEmail@gmail.com", "myPassword");
                client.Port = 587;
                client.EnableSsl = true;
                client.Send(mail);
                MessageBox.Show("Mail Sent", "Success", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n\n" + ex.GetType().ToString() + "\n\n" + ex.StackTrace, "Exception");
            }
        }

看起来像是在“client.send(mail);”中发生异常。线。

catch异常消息是:发送邮件失败.. System.Net.Mail.SmtpException。

这里有什么想法吗?感谢。

3 个答案:

答案 0 :(得分:0)

首先,您需要了解此问题的原因,您可以使用SMTPDIAG工具。

使用SSL尝试端口465或25,因为端口587应与TLS一起使用。

查看Google文档:https://support.google.com/mail/answer/78775?hl=en

检查防火墙和以太网防火墙,端口可能已关闭。

答案 1 :(得分:0)

我遇到了同样的问题,因为谷歌阻止了这类安全性较低的邮件。检查您在代码中使用的邮件。如果您有一封来自谷歌的邮件说允许访问不太安全的应用程序,您可以将其打开。现在你将开始收到邮件。

答案 2 :(得分:-1)

将端口465用于gmail。 587将无效。