首先是简单的邮件代码:
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内容过滤将邮件拒绝为垃圾邮件。
我认为交换问题,但我尝试使用错误的凭据(用户:完整密码:垃圾),我得到了同样的例外。
我原本预计会出现身份验证错误,所以我怀疑我是否错误地指定了凭据?
答案 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);
}