【问题标题】:code to send email发送电子邮件的代码
【发布时间】:2010-04-04 17:00:44
【问题描述】:

我在这里做错了什么?

 private void SendMail(string from, string body)
    {
        string mailServerName = "plus.pop.mail.yahoo.com";
        MailMessage message = new MailMessage(from, "aditya15417@yahoo.com", "feedback", body);
        SmtpClient mailClient = new SmtpClient();
        mailClient.Host = mailServerName;
        mailClient.Send(message);
        message.Dispose();
    }

我收到以下错误:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 209.191.108.191:25

【问题讨论】:

    标签: c# .net asp.net visual-studio


    【解决方案1】:

    您正在使用wrong server。您将需要使用 SMTP 设置。

    试试这个服务器:plus.smtp.mail.yahoo.com 他们的网站将此主机标记为 SSL。

    private void SendMail(string from, string body) 
    { 
        string mailServerName = "plus.smtp.mail.yahoo.com"; 
        int mailServerPort = 465;
        string toAddress = "aditya15417@yahoo.com";
        string subject = "feedback";
    
        string username = "user";
        string password = "password";
    
        SmtpClient mailClient = new SmtpClient(mailServerName, 
                                               mailServerPort); 
        mailClient.Host = mailServerName; 
        mailClient.Credentials = new NetworkCredential(username, 
                                                       password);
        mailClient.EnableSsl = true;
    
        using (MailMessage message = new MailMessage(from, 
                                                     toAddress, 
                                                     subject, 
                                                     body))
            mailClient.Send(message); 
    } 
    

    【讨论】:

    • 用户名和密码应该是发件人密码吧?
    • 我也收到如下错误:一个现有的连接被远程主机强行关闭
    • 是的,用户名和密码必须是发件人的。用户名可能需要是您的电子邮件地址。您也可以尝试删除 SSL 并登录,但这取决于雅虎。我没有他们的帐号,所以无法为您测试。
    • 嗯...这是用于联系我们的表格.. 因此,您是否建议我需要用户在联系我们表格中输入他们的用户名和密码?听起来不太好......通常联系我们的表格只输入他们的电子邮件
    • 不,您只需要 SMTP 服务器上的帐户。您应该可以在 from 行中输入您想要的任何地址。 (通常,发件人地址和 smtp 帐户是相同的,除非您使用 SMTP 作为您所描述的中继。)您可能需要与 Yahoo 确认。有时用户协议/政策规定您只会将他们的服务器用于个人电子邮件。
    【解决方案2】:

    您需要使用 SMTP 服务器,看起来您使用的是 POP3 服务器。

    【讨论】:

      【解决方案3】:

      要使用 Yahoo 邮件服务器发送电子邮件,您需要在 SmtpClient 实例上设置 EnableSSL = true。

      您还需要使用正确的端口,即 465。

      这个网站上有很多教程真正介绍了如何使用 System.Net.Mail 命名空间:

      【讨论】:

        猜你喜欢
        • 2016-11-23
        • 2016-12-06
        • 1970-01-01
        • 1970-01-01
        • 2012-01-06
        • 2012-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多