电子邮件转到垃圾邮件文件夹

我创建了一个社区门户,用户可以在其中创建自己的帐户。 成功注册后,将在注册的电子邮件地址发送确认邮件。

我使用以下代码发送邮件 –

private void SendMail(string recvr, string recvrName, string verCode, int NewUserID) { try { string emailID = ConfigurationManager.AppSettings["WebMasterMail"]; string mailPass = ConfigurationManager.AppSettings["pass"]; string mailer = ConfigurationManager.AppSettings["mailer"]; MailMessage msg = new MailMessage(); MailAddress addrFrom = new MailAddress(emailID, "Panbeli.in.... Bari community portal"); MailAddress addrTo = new MailAddress(recvr, recvrName); msg.To.Add(addrTo); msg.From = addrFrom; msg.Subject = "You have registered sucessfully on PanBeli.in."; msg.Priority = MailPriority.High; msg.Body = RegisterMessageBody(recvrName, verCode,NewUserID); msg.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(mailer); smtp.Credentials = new System.Net.NetworkCredential(emailID, mailPass); smtp.Send(msg); } catch (Exception Ex) { } } 

测试时我们发现所有确认邮件都是垃圾邮件文件夹而不是收件箱。

代码有什么问题,还是有任何与安全相关的问题。

任何人都可以建议解决这个问题。

谢谢你分享你的时间。

听起来您的电子邮件被SpamAssassin等标记,因此您只需要专注于更改您的电子邮件,以免被标记。

  • 你的内容听起来没有任何理由为贝叶斯分数评分高,所以我不认为这是问题所在。 尝试删除可能的触发词并不会有什么坏处。

  • 您的邮件标记为高优先级。 你需要这个吗? 这只是垃圾邮件filter中的一个评分指标。 垃圾邮件通常标记为高优先级,因此您的邮件将受到更严格的审查。 另一方面,对于某些filter标记您的消息具有高优先级将意味着更少的审查。

  • IsBodyHTML标记为true,但您只提供text/html 。 您最低限度需要包含带有text/plain的备用视图。

     message.IsBodyHtml = true; string html = RegisterMessageBodyHtml(recvrName, verCode,NewUserID); string plain = RegisterMessageBodyPlaintext(recvrName, verCode, NewUserID); message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, new ContentType("text/html")); message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plain, new ContentType("text/plain")); 
  • 了解Google如何处理您的消息。 在Gmail中,打开您发送的测试邮件,单击“回复”按钮旁边的向下箭头,然后选择“显示原始文件”。 您会看到Google如何处理您的邮件。 寻找像这样的标题:

     Received-SPF: softfail (google.com: domain of transitioning xxx@xxx.org does not designate xx.xx.xx.xx as permitted sender) client-ip=xx.xx.xx.xx; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning xxx@xxx.org does not designate xx.xx.xx.xx as permitted sender) 
  • 阅读SpamAssassin的默认规则集,因为它可能是大多数filter规则集的一个很好的参考。 如果您可以确定邮件被标记的原因,则可以进行修复。

电子邮件被标记为垃圾邮件

不幸的是,这不是编程问题,但我可以理解为什么你会认为它是。 代码正在发送电子邮件,并且已按照您的报告发送。 所以这不太可能是你的代码的问题,因为它完全满足了它的目的!

绕过它

这一切都归结为收件人邮件客户端(他们用来查看电子邮件的软件),或者在某种网关处理电子邮件的服务,或者这两者的组合!

所有这些元素都有各种各样的算法和指标,用于确定电子邮件是否可能是垃圾邮件。 因此,一个人适合所有解决方案是不可能的。 有些是聪明的,有些则不那么好,有些人粗暴地丢弃了大量的电子邮件,其他人纯粹是在“不在白名单上”,“你没有进入”政策,然后有些人只是让一切都进来而不管内容/产地。

解决这个问题的方法有:

  • 尝试获取主要电子邮件提供商的白名单。
  • 教育您的受众将发件人电子邮件地址添加为受信任的联系人。
  • 检查您的邮件服务器IP未被某些提供商列入黑名单。 您的IP地址以前可能用于发送垃圾邮件。
  • 试验电子邮件内容

您的发件人地址无效。 尝试输入指向有效邮箱的真实电子邮件地址。 此电子邮件地址最好与您用来发送邮件的SMTP服务器位于同一个域中。 如果没有,请阅读SPF http://en.wikipedia.org/wiki/Sender_Policy_Framework

在创建MailMessage ,在代码中添加以下行

  msg.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8"); 

这发生在我身上,现在已经解决了,我只是在MailMessage对象上设置BodyEncoding和SubjectEncoding属性,并将DOCTYPE和html标签添加到我的电子邮件标题中,

 var msg = new MailMessage { Subject = subject, Body = body, BodyEncoding = System.Text.Encoding.UTF8, SubjectEncoding = System.Text.Encoding.Default, IsBodyHtml = true };   

它现在运作得很好

即使对于房屋名称,这种情况也会发生很多。 我很同情你,因为你只想要一个纯文本邮件,但如果你的客户真的想要那些电子邮件而你真的想要你的徽标,那么他们就可以白名单列出您的域名,以便所有电子邮件都能通过!

我们使用一家名为mailchimp的公司发送订阅者邮件,我向他们询问如何避免垃圾邮件filter,特别是在基本上广告的情况下,很难避免它们,这是他们的建议,并且有很多。

避免使用垃圾邮件filter