C#Net.Mail电子邮件标记为垃圾邮件,但仅限于专用服务器

时间:2016-06-11 23:19:46

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

一些提供商喜欢" live.com"," virgilio.it"或" libero.it"将从我的网站发送的所有电子邮件标记为垃圾邮件我的网站托管在Aruba SPA的专用服务器上。 我已经尝试过一些设置,添加替代视图或操纵Headers,但没有成功! 奇怪的是,如果我使用本地机器发送电子邮件,收到的电子邮件没有问题,也没有标记为垃圾邮件! 对于发送电子邮件,我使用外部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)

1 个答案:

答案 0 :(得分:1)

您可以检查一下,您的服务器IP是否正确设置了rDNS / PTR记录。您可以从here..验证它。如果未设置,则可以联系您的托管服务提供商,将其设置为您的服务器IP地址。

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

检查您的IP地址信誉。如果它很差,那么你必须检查它的根本原因,如电子邮件被泄露或其他任何其他等待你的IP地址声誉更新为一般或好。

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