C#app中的SMTP客户端发送错误

ptr*_*x01 3 c# smtp send

嘿,伙计们,我正在尝试使用hotmail帐户设置电子邮件发送应用程序.代码如下所示:

MailMessage mail = new MailMessage(from, to);
        mail.Subject = "Proba email";
        mail.Attachments.Add(new Attachment("C:\\Documents and Settings\\Proba.txt"));
        SmtpClient client = new SmtpClient();
        client.UseDefaultCredentials = false;
        client.Port = 587; // 465 568
        client.Host = "smtp.live.com";
        client.EnableSsl = true;
        client.Credentials = new System.Net.NetworkCredential("smg@hotmail.com", "password");
        client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
        client.SendAsync(mail, "token");
Run Code Online (Sandbox Code Playgroud)

使用,Async我实际上没有错误,我甚至得到反馈说消息发送(事件触发器)但消息永远不会到达.如果我使用简单的client.Send void,我收到以下错误:

5.3.4未采取的请求行动; 要继续发送邮件,请登录您的帐户.

关于问题可能是什么的任何想法?当我试图传递hotmail的SMTP设置时,我得到了各种设置,说端口25,然后587所以也许它就是那里的东西.非常感谢任何帮助!

  • 好的,所以它现在肯定在工作,我想问我是否必须定期做"我不是机器人检查"或者那是一次性的事情吗?

小智 5

这是我的设置,BTW async不会返回任何错误.

<system.net>
<mailSettings>
  <!-- E-mail server settings -->
  <smtp from="do-not-reply@example.com">
    <network host="smtp.example.com" port="25" userName="" password="" defaultCredentials="true" />
  </smtp>
</mailSettings>
Run Code Online (Sandbox Code Playgroud)

    void SendEmail(EmailEntity email)
    {
        var mailMessage = new MailMessage { From = new MailAddress(email.From) };
        mailMessage.To.Add(new MailAddress(email.To));
        mailMessage.Subject = email.Subject;
        mailMessage.Body = email.Body;
        mailMessage.IsBodyHtml = true;

        // Send the email
        var client = new SmtpClient();
        client.Send(mailMessage);
    }
Run Code Online (Sandbox Code Playgroud)