为什么电子邮件不发送到这里?

时间:2016-11-21 08:04:05

标签: c# asp.net-mvc

我有一个发送电子邮件的代码:

public static bool SendEmail(
    string fromEmail, string toEmail,
    string subject, string body,
    bool isBodyHtml = false, bool isThrowException = false)
{
    var message = new MailMessage(fromEmail, toEmail)
    {
        IsBodyHtml = isBodyHtml,
        Subject = subject,
        Body = body,
    };

    using (var client = new SmtpClient())
    {
        try
        {
            client.Send(message);
        }
        catch (Exception ex)
        {
            if (isThrowException)
            {
                throw new Exception(ex.ToString());
            }
        }
    }

    return true;
}

web.config我有:

  <system.net>
    <mailSettings>
      <smtp>
        <network host="smtp.bizmail.yahoo.com" port="25" enableSsl="true" userName=helpdesk@global.com" password="@cr123" defaultCredentials="true"/>
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

现在我没有任何例外,仍然没有收到邮件的另一端。 我可以通过我的凭据登录yahoo.com。 仍然

client->credentils->domain=""
client->ServicePoint = 'client.ServicePoint' threw an exception of type 'System.TypeInitializationException'

它出了什么问题?

代码运行良好...在1个月之前,我没有改变一行,出了什么问题?

2 个答案:

答案 0 :(得分:0)

在代码中添加连接属性和凭据:

NetworkCredentials Credencials = new NetworkCredential(SmtpUsername, SmtpPassword);

client.Host = SmtpHost;
client.Port = SmtpPort; 
client.Credentials = Credencials;

答案 1 :(得分:0)

首先感谢所有试图帮助你的人。

在我提到的问题中,在创建smtp的新对象时出错。

smtp将读取web.config并创建一个与web.config相关的对象。 所以我开始知道问题出在web.config上。我也确定C#代码没有任何问题。所以我分析了web.config并找到了一些过滤器。

from datetime import datetime, timedelta
from pytz import timezone
import pytz
eastern = timezone('US/Eastern')
loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0))
print(loc_dt.strftime('%Z'))

基本上我用它来删除azure版本的错误信息。

在创建smtp对象时导致Serverpoint出现问题。 所以我刚删除了这条线。它运作良好。

我不仅知道smtp标签,web.config文件中的其他标签也会影响当前的问题。