0

首先是简单的邮件代码:

var objMail = new MailMessage(myEmail, myEmail, "Test Message", "Some message");
var objNc = new NetworkCredential("complete", "rubbish");
var objsmtp = new SmtpClient(myExchangeServer") { UseDefaultCredentials = false, Credentials = objNc };

我从正确的凭据开始并从交换中获取此消息:

信箱不可用。服务器响应为:5.7.1 邮件被内容过滤拒绝为垃圾邮件。

我想是交换问题,但后来我尝试使用错误的凭据(用户:完整密码:垃圾),我得到了同样的异常。

我本来预计会出现身份验证错误,所以我怀疑我错误地指定了凭据?

4

2 回答 2

1

可能是电子邮件首先命中垃圾邮件过滤器,在这种情况下,它与您的凭据无关。查看返回的消息:

邮件被内容过滤拒绝为垃圾邮件

有很多事情可以触发电子邮件垃圾邮件过滤器。在您的情况下,它可能是相对较低的文本内容。

MailChimp有一篇关于垃圾邮件过滤器寻找的东西的不错的文章。

特别注意这一行:

在主题行中使用“测试”一词(代理商在将草稿发送给客户以供批准时会遇到这种情况)

我不记得MailMessage参数顺序,但看起来你可能正在这样做 - 请参阅Test Message主题行......

var objMail = new MailMessage(myEmail, myEmail, "Test Message", "Some message");
于 2013-09-12T08:28:24.077 回答
0

在您的应用程序配置中设置 smtp 设置

  <system.net>
<mailSettings>
  <smtp from="abc@abc.com"  deliveryMethod="Network">
    <network defaultCredentials="true" userName="usernae" password="passo" host="smtp.emailsrvr.com" port="25"/>
  </smtp>
</mailSettings>

然后用于发送邮件

string toEmail = "reciever Email";
                MailMessage message = new MailMessage();
                using (SmtpClient smtpClient = new SmtpClient())
                {
                    var smtpSection = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as System.Net.Configuration.SmtpSection;
                    MailAddress fromAddress = new MailAddress(Convert.ToString(smtpSection.From), "Mail Header");
                    smtpClient.Host = Convert.ToString(smtpSection.Network.Host);
                    smtpClient.Port = Convert.ToInt32(smtpSection.Network.Port);
                    if (smtpSection.Network.UserName != null && smtpSection.Network.Password != null)
                    {
                        smtpClient.Credentials = new System.Net.NetworkCredential(smtpSection.Network.UserName, smtpSection.Network.Password);
                    }
                    message.From = fromAddress;
                    message.To.Add(toEmail);
                    message.Subject = "your subject";
                    message.Body = "message body";
                    message.IsBodyHtml = true; // if using html
                    message.BodyEncoding = Encoding.UTF8;
                    smtpClient.Send(message);
                }
于 2013-09-12T08:24:18.513 回答