邮件被拒绝,但没有我预期的错误

时间:2013-09-12 08:18:03

标签: c# exchange-server

首先是简单的邮件代码:

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内容过滤将邮件拒绝为垃圾邮件。

我认为交换问题,但我尝试使用错误的凭据(用户:完整密码:垃圾),我得到了同样的例外。

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

2 个答案:

答案 0 :(得分:1)

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

  

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

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

MailChimp有一篇关于垃圾邮件过滤器所需内容的文章。

特别注意这一行:

  

在主题行中使用“test”一词(代理商在向客户发送草稿以供审批时遇到此问题)

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

var objMail = new MailMessage(myEmail, myEmail, "Test Message", "Some message");

答案 1 :(得分:0)

在app app config中设置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);
                }