C#使用SMTP电子邮件发送电子邮件

时间:2016-01-12 12:16:20

标签: c# asp.net iis smtp

我对SMTP和IIS设置比较新,但根据我在网上阅读的文档,这应该是有用的。

我想要实现的目标: 使用现有SMTP中继服务器从服务器向用户电子邮件发送电子邮件。

我做了什么: 在我的IIS中,对于我的站点(ASP.NET),我已经配置了SMTP电子邮件。 我已进入:

  1. 一个随机的电子邮件地址(它不一定是现有的,对吗?)
  2. SMTP服务器IP(在本例中为外部SMTP中继服务器的IP)
  3. 端口号(25)。
  4. Autentication设置为"不需要"。
  5. 我发送电子邮件的方法如下:

    public static void SendEmail()
    {
        var message = new MailMessage()
        {
            Subject = "Heading",
            Body = "Body",
    
            message.From = new MailAddress("test@test.com");
            message.To.Add("A valid email address"); //My own email address
        }
        var smtpClient = new SmtpClient("SMTP-Relay-Server-IP", 25); //Same IP as the one in SMTP E-mail configuration in IIS for the site.         
        smtpClient.Send(message);
    }
    }
    

    事实/问题:

    1. 这是对的吗?将中继服务器IP和端口号作为参数放在新SmtpClient
    2. 中是否正确?
    3. 我没有收到错误但我没有收到电子邮件。 (我完全确定"发送电子邮件"是正确的。
    4. 这可能是什么原因导致无法正常工作?我错过了什么或误解了什么?

2 个答案:

答案 0 :(得分:2)

smtpClient.Send(message);包裹在try / catch块中,并记录引发的任何异常。

  

一个随机的电子邮件地址(它不一定是现有的,对吗?)

这取决于您的SMTP提供商和配置。

如果没有关于您的SMTP提供商的更多信息或错误消息,我怀疑我们可以为您做些什么。

答案 1 :(得分:-2)

MailMessage mail = new MailMessage("sendTo", "from");
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new NetworkCredential("user", "pass");
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Host = "smtp.gmail.com";
mail.Body = "this my message";
smtp.Send(mail);

应该像这样列出