簡體   English   中英

從hotmail發送郵件有時會失敗,使用C#

[英]sending mail from hotmail fails sometimes using c#

我有C#代碼發送郵件。 該代碼對於gmail,yahoo配置工作正常。 但是對於hotmail,有時會發送郵件,而有時不會發送郵件。 我觀察到,與gmail相比,雅虎郵件的響應時間更好。 但是與yahoo,gmail相比,hotmail的響應非常差。

會是什么原因? 如何配置hotmail以獲得良好的響應。

這是我發送郵件的代碼:

 private void button2_Click(object sender, EventArgs e)
 {

            SmtpClient client = new SmtpClient();
            MailMessage message = new MailMessage();

        message.To.Add("user_name");
                message.From = new MailAddress("user_name");
                message.Subject = "Email Confirmation";
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.SubjectEncoding = System.Text.Encoding.UTF8;

    client.Port=587
    client.Host="smtp.live.com";

    System.Net.NetworkCredential nc = new System.Net.NetworkCredential("user_name", "password");
                if (mail_server == "smtp.gmail.com" || mail_server == "smtp.live.com")
                {
                    client.EnableSsl = true;
                }
                client.UseDefaultCredentials = false;
                client.Credentials = nc;

                Ping p = new Ping();
                bool result = false;
                int i = 10;
                do
                {

                    PingReply reply = p.Send("smtp.live.com", 587);
                    if (reply.Status == IPStatus.Success)
                    {
                        result = true;
                    } Thread.Sleep(500);
                    i--;
                } while (result == false && i != 0);

                if (result == true)
                {
                    client.Send(message);
                    MessageBox.Show("Email sent successfully");                    


                }
                else
                {
                    MessageBox.Show("Email not sent");

                }
 }

如果您嘗試使用上述代碼發送電子郵件,則顯然將無法發送它,我不知道您使用Ping類發送電子郵件的原因是什么。

固定代碼:

    SmtpClient client = new SmtpClient();
    MailMessage message = new MailMessage();

    message.To.Add("user_name");
    message.From = new MailAddress("user_name");
    message.Subject = "Email Confirmation";
    message.BodyEncoding = Encoding.UTF8;
    message.SubjectEncoding = Encoding.UTF8;

    client.Port = 587;
    client.Host = "smtp.live.com";

    NetworkCredential nc = new NetworkCredential("user_name", "password");
    string mail_server = "smtp.live.com";
    if (mail_server == "smtp.gmail.com" || mail_server == "smtp.live.com")
        {
            client.EnableSsl = true;
        }
        client.UseDefaultCredentials = false;
        client.Credentials = nc;

    try
    {
        client.Send(message);
    }
    catch (SmtpException exception)
    {
        Console.WriteLine(exception.Message);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM