Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c从hotmail发送邮件有时会失败#_C#_Email - Fatal编程技术网

C# 使用c从hotmail发送邮件有时会失败#

C# 使用c从hotmail发送邮件有时会失败#,c#,email,C#,Email,我有c#代码发送邮件。该代码在gmail、yahoo配置中运行良好。但对于hotmail,有时会发送邮件,有时不会发送邮件。我观察到雅虎邮件的响应时间比gmail要好。但与雅虎、gmail相比,hotmail的响应非常差 原因是什么?如何配置hotmail以获得良好的响应 这是我发送邮件的代码: private void button2_Click(object sender, EventArgs e) { SmtpClient client = new SmtpC

我有c#代码发送邮件。该代码在gmail、yahoo配置中运行良好。但对于hotmail,有时会发送邮件,有时不会发送邮件。我观察到雅虎邮件的响应时间比gmail要好。但与雅虎、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);
    }

很可笑,不是吗?两种微软技术不能很好地合作!当它失败时,您会遇到什么错误?@Raghvenra-您能解释为什么使用Ping而不是
客户端。发送(消息)
?Ping用于检查电子邮件服务器的响应。如果我得到响应,IPStatus将设置为“成功”状态。测试服务器响应是关键ping@AppDeveloper我收到以下错误:邮箱不可用。服务器响应为:5.7.3请求的操作中止;用户未经验证此代码工作正常。。。但如果使用ping,我有时不会收到hotmail服务器的响应。ping还用于检查发送邮件时用户名、密码是否正确。我必须验证邮件帐户是否正确,并显示“用户帐户无效”的警报。请为我的问题投票。。如果问题有效:-)