向hotmail问题发送本地电子邮件

本文关键字:电子邮件 hotmail 问题 | 更新日期: 2023-09-27 18:25:06

我有以下代码导致"未指定SMTP主机"你知道为什么会这样吗?非常感谢

var mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(new MailAddress("myemail@hotmail.co.uk"));
mailMessage.From = new MailAddress("atest@test.com");
mailMessage.Subject = "my test subject";
mailMessage.Body = "my test body";
mailMessage.IsBodyHtml = true;
var smtpClient = new SmtpClient { EnableSsl = true };
object userState = mailMessage;
smtpClient.Send(mailMessage);

我现在已经尝试了以下操作,但它仍然无法通过

            var client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("me@gmail.com", "password"),
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
               UseDefaultCredentials = false
            };
            var mail = new MailMessage("test@example.com", "me@gmail.com", "hello", "there");
            mail.Body = "Hello";
            mail.Subject = "hi";
            client.Send(mail);

向hotmail问题发送本地电子邮件

因为您没有指定smtpClient.Host属性。

您似乎没有定义要发送的服务器,除非您在应用程序配置中这样做。

<system.net>
        <mailSettings>
            <smtp>
                <network host="127.0.0.1" port="25"/>
            </smtp>
        </mailSettings>
    </system.net>

您需要指定您的设置,而不是我在上面的示例中使用的本地设置。

var client = new SmtpClient(smtpServer, 25)
{
    Credentials = new NetworkCredential(userName, password),
    EnableSsl = false
};
MailMessage mail = new MailMessage(sender, receiver, head, body);
client.Send(mail);

您应该指定您的Smtp服务器,如上所示。


或者您可以在web.config文件中指定它。

<mailSettings>
  <smtp>
    <network 
       host="server" 
       port="portNumber"
       userName="username"
       password="password" />
  </smtp>
</mailSettings>

是否在web.config中添加了mailSettings?请查看Scott的以下链接。

http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx

在发送消息之前启用SSL

smtpClient.EnableSsl=true;