如何使用c#发送电子邮件?

时间:2017-04-27 08:55:21

标签: c#

我正在尝试创建一个Windows窗体,在用户单击按钮时发送电子邮件,但每次尝试时都会引发异常:发送邮件失败。我的代码出了什么问题?

    private void button1_Click(object sender, EventArgs e)
    {
        SmtpClient smtpClient = new SmtpClient();
        NetworkCredential basicCredential =
            new NetworkCredential("username", "password");
        MailMessage message = new MailMessage();
        MailAddress fromAddress = new MailAddress("myemailadress@gmail.com");

        smtpClient.Host = "smpt.gmail.com";
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = basicCredential;

        message.From = fromAddress;
        message.Subject = "your subject";
        //Set IsBodyHtml to true means you can send HTML email.
        message.IsBodyHtml = true;
        message.Body = "<h1>your message body</h1>";
        message.To.Add("towhomisend@yahoo.com");

        try
        {
            smtpClient.Send(message);
        }
        catch (Exception ex)
        {
            //Error, could not send the message
            MessageBox.Show(ex.Message);
        }
    }

4 个答案:

答案 0 :(得分:6)

使用"smtp.gmail.com"代替"smpt.gmail.com"

答案 1 :(得分:2)

1)检查SMTP设置是否正确并且服务器配置是否正确(主机和端口设置)

2)检查凭证(用户名和密码)是否正确

3)检查防火墙是否阻止了请求

4)。检查端口587如果它在防火墙中被阻止

港口587: 这是默认的邮件提交端口。当邮件客户端或服务器提交要由适当的邮件服务器路由的电子邮件时,它应始终使用此端口。

答案 2 :(得分:2)

'smtpClient.Host =“smpt.gmail.com”;'部分不正确。

将“smpt.gmail.com”改为“smtp.gmail.com”

“S M T P” - 不 - “S M P T”

答案 3 :(得分:1)

使用int i = new BigDecimal("4.30000000e+01").intValue();

除此之外 再确认一下,你必须在你的Gmail中启用其他程序的电子邮件。 当您尝试发送一次时,您将收到电子邮件ID通知。 你必须在那里启用它。