【问题标题】:sending local emails to hotmail issue将本地电子邮件发送到 hotmail 问题
【发布时间】:2012-03-10 19:38:33
【问题描述】:

我有以下代码导致“未指定 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);

【问题讨论】:

  • 我不确定,但可能你应该将端口号设置为 587
  • 如果它说没有指定 SMTP 主机,我敢打赌……没有指定 SMTP 主机。请参阅msdn.microsoft.com/en-us/library/…,注意Hostproperty。

标签: c# asp.net .net frameworks hotmail


【解决方案1】:
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>

【讨论】:

    【解决方案2】:

    在发送消息之前启用 SSL

    smtpClient.EnableSsl=true;
    

    【讨论】:

    • 有主机 smtp.live.co.uk 吗?我不确定,可以试试这个
    【解决方案3】:

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

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

    【讨论】:

    • var email = new MailMessage { From = new MailAddress("test@foo.com") }; email.To.Add(new MailAddress("test@hotmail.co.uk")); email.Subject = "这是我的主题"; email.Body = "这是内容"; var client = new SmtpClient(); client.Send(email);
    • 但我仍然收到主机错误。请问有什么建议吗?非常感谢
    • @JamesRadford 如果这回答了你的问题,请也投票给答案。
    【解决方案4】:

    您似乎没有定义要发送的服务器,除非您已在应用程序配置中完成此操作。

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

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

    【讨论】:

    • 谢谢,我已经添加了这个配置设置,虽然我仍然遇到同样的问题。
    • 非常高兴我的建议对您有所帮助。
    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-25
      • 2011-09-07
      • 2011-02-24
      • 1970-01-01
      • 2014-11-30
      • 2016-02-22
      • 2014-04-19
      • 2014-06-11
      相关资源
      最近更新 更多