【问题标题】:C# Net.Mail e-mail marked as spam but only from dedicated serverC# Net.Mail 电子邮件被标记为垃圾邮件,但仅来自专用服务器
【发布时间】:2016-10-12 16:00:06
【问题描述】:

“live.com”、“virgilio.it”或“libero.it”等一些提供商会将从我的网站发送的所有电子邮件标记为垃圾邮件。我的网站托管在我在 Aruba SPA 上的专用服务器中。 我已经尝试过一些设置,添加替代视图或操作标题,但没有成功! 奇怪的事实是,如果我使用本地计算机发送电子邮件,则可以毫无问题地接收电子邮件,并且没有标记为垃圾邮件! 对于发送电子邮件,我使用外部 SMTP 服务器 (smtp.mydomain.it)

我的专用服务器运行的是 Windows Server 2008 R2 IIS 7.5,我的本地机器运行的是 Windows 10 IIS 10。

请帮帮我!

这是我的代码

Dim mail As New System.Net.Mail.MailMessage
        Dim invio As New System.Net.Mail.SmtpClient()
        invio.Host = serverSMTP
        invio.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
        invio.UseDefaultCredentials = False
        Dim Credentials As Net.NetworkCredential = New Net.NetworkCredential(username, password)
        invio.Credentials = Credentials

        mail.Sender = New Net.Mail.MailAddress(mittente, displayname, System.Text.Encoding.GetEncoding("utf-8"))
        mail.From = New Net.Mail.MailAddress(mittente, displayname, System.Text.Encoding.GetEncoding("utf-8"))
        mail.ReplyToList.Add(New Net.Mail.MailAddress(mittente, displayname, System.Text.Encoding.GetEncoding("utf-8")))
        mail.To.Add(destinatario)
        mail.Subject = oggetto
        mail.IsBodyHtml = True
        mail.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8")
        mail.SubjectEncoding = System.Text.Encoding.GetEncoding("utf-8")
        'mail.Body = corpo
        mail.HeadersEncoding = System.Text.Encoding.GetEncoding("utf-8")
        mail.Headers.Add("Message-Id", String.Concat("<", Now.ToString("yyMMdd"), ".", Now.ToString("HHmmss"), Mid(username, InStr(username, "@"), Len(username)), ">"))

        Dim plainView As System.Net.Mail.AlternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(System.Text.RegularExpressions.Regex.Replace(corpo, "<(.|\n)*?>", String.Empty), System.Text.Encoding.GetEncoding("utf-8"), "text/plain")
        Dim htmlView As System.Net.Mail.AlternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(corpo, System.Text.Encoding.GetEncoding("utf-8"), "text/html")
        mail.AlternateViews.Add(plainView)
        mail.AlternateViews.Add(htmlView)

        invio.Send(mail)

【问题讨论】:

  • 能否请您发布您为发送电子邮件而编写的代码?
  • 电子邮件服务器很难管理,如果您在主要托管网络上运行它们,那么您经常会因为同一网络上其他人的活动而被列入黑名单。即使是大人物也偶尔会被列入黑名单。我建议您在mxtoolbox.com/blacklists.aspx 等黑名单检查网站上输入您的电子邮件服务器,然后弄清楚之后该做什么。坦率地说,有很多事情可以帮助您提高针对垃圾邮件过滤器的分数,除非您打算经营电子邮件业务,否则这是不值得的。为服务付费。
  • 大家好,我已经发布了我的代码。 @Erik我了解同一网络上的活动,但我的服务器有一个静态IP,我不明白为什么本地机器使用动态IP工作!我使用与专用服务器相同的 SMTP 地址。
  • 静态ip没关系。当主机被列入黑名单时,它通常会将该主机提供商的整个 IP 块列入黑名单。
  • 所以......你的意思是我的 IP 被列出并且电子邮件被标记为垃圾邮件,即使我在端口 465 上使用像谷歌这样的外部 SMTP 服务器......并且没有解决方案,对吗?跨度>

标签: c# email iis spam-prevention email-spam


【解决方案1】:

您可以检查一下,您的服务器 IP 已正确设置 rDNS/PTR 记录。您可以通过 here.. 进行验证,如果未设置,则可以联系您的托管服务提供商为您的服务器 IP 地址设置它。

检查您的服务器 IP 地址是否来自 here。如果它被列入黑名单,那么您需要诊断根本原因并采取纠正措施。之后,将您的 IP 地址删除请求提交给列入黑名单的 ISP/RBL。

检查您的 IP 地址信誉。如果它很差,那么您必须检查它的根本原因,例如电子邮件受损或任何其他原因,然后等待您的 IP 地址信誉更新为一般或良好。

将正确的 DKIMSPF 记录添加到您从中发送电子邮件的域中。如果未设置这些记录,那么您可以聘请您的网络开发人员或托管服务提供商为您设置这些记录。

【讨论】:

  • Ty Herbal,你是对的。我已经联系了主机,他们告诉我有关 rDns 和 Ptr 的信息。但我不确定这是正确的方法...我的机器上没有使用任何 SMTP 服务器,Mx 记录由托管管理...如果我没有 SMTP 服务器,我如何设置 Ptr 或 nDns ?我刚开了一张解决问题的票,技术人员正在调查这个问题。否则我使用 Gmail SMTP 解决了这个问题!
  • 您不能设置 rDNS/PTR 记录,因为它需要设置 IP 地址。因此,您的托管服务提供商应该为您设置它。您可以使用第三方 SMTP 服务,但它会将您的服务器 IP 地址作为发件人 IP 地址。因此,您可能会遇到这样的问题。希望,一旦设置了 rDNS/PTR、DKIM 和 SPF 记录,您应该能够从您的专用服务器发送电子邮件。
  • 主机已调查我的问题,并告诉我我的 IP 的垃圾邮件分数很高。现在他们重置了垃圾邮件分数,一切正常,但为了将来我要求激活 rDns、皮肤和 SPF
猜你喜欢
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2022-01-09
  • 2012-09-13
  • 2010-12-12
  • 1970-01-01
  • 2013-02-01
相关资源
最近更新 更多