C# 垃圾邮件

C# 垃圾邮件,c#,asp.net,mysql,web-services,email,C#,Asp.net,Mysql,Web Services,Email,我已经用C语言制作了asp.NETWebService,以在给定的mailid上发送邮件作为参数 邮件已发送,但显示为垃圾邮件,而不是收件箱邮件 我使用了以下代码 .NET代码: WEB.CONFIG代码: 有什么问题吗 谢谢。收件人的提供商将您的邮件内容识别为垃圾邮件,或者您使用的中继服务器被列入黑名单。如果您使用的是relay-hosting.secureserver.net,则可能是后者。我建议使用比GoDaddy更值得信任的中继提供商。您的发件人地址是GMAIL.COM,您不是从GMAI

我已经用C语言制作了asp.NETWebService,以在给定的mailid上发送邮件作为参数

邮件已发送,但显示为垃圾邮件,而不是收件箱邮件

我使用了以下代码

.NET代码:

WEB.CONFIG代码:

有什么问题吗


谢谢。

收件人的提供商将您的邮件内容识别为垃圾邮件,或者您使用的中继服务器被列入黑名单。如果您使用的是relay-hosting.secureserver.net,则可能是后者。我建议使用比GoDaddy更值得信任的中继提供商。

您的发件人地址是GMAIL.COM,您不是从GMAIL服务器发送电子邮件,而是从另一台服务器发送电子邮件。使用域密钥识别邮件DKIM和发送方策略框架SPF,现在是可能的,大多数系统管理员在域的DNS记录中为该域指定授权的电子邮件发送服务器。这样,当电子邮件收件人服务器收到电子邮件时,它可以通过使用发件人域的DNS中提到的授权服务器列表检查电子邮件发送服务器来检查电子邮件源的真实性。如果不匹配,则根据发件人域的系统管理员在其DNS记录中设置或指定的规则,该电子邮件可能会被完全拒绝或保存为垃圾邮件文件夹中的垃圾邮件


我想这就是正在发生的事情。在发送电子邮件之前,您还应使用服务检查发送服务器SMTP凭据。

如果您从没有有效SPF记录的IP地址发送电子邮件,则该电子邮件可能会显示为垃圾邮件。在此示例中,relay-hosting.secureserver.net没有有效的IP地址作为gmail的SMTP服务器

尝试从现实生活中使用的实际域发送测试,而不是test@gmail.com.


如果它仍然被标记为垃圾邮件,则很容易为其添加SPF记录test@youractualdomain.com. 这是一个曾经帮助过我的网站:

有几件事在起作用,它们共同提高了你电子邮件的垃圾邮件分数。请记住,这不是垃圾邮件/非垃圾邮件,而是垃圾邮件分数,超过该分数,您的电子邮件将被接收服务器标记为垃圾邮件

我猜,在你的情况下起作用的因素如下:

没有可选文本消息的HTML正文 发件人地址与发送邮件的实际服务器地址不一致 发件人地址不存在 SMTP服务器relay-hosting.secureserver.net的声誉较低 没有SPF或域密钥记录 解决方案也有几点:

创建邮件的备用文本版本,并将其包含在正文中,说明如何执行此操作 使用发送电子邮件的服务器上实际存在的发件人地址 请为您的SMTP服务器使用信誉良好的提供商,例如,或 指定SPF和DomainKeys DNS记录允许接收服务器将您的邮件标识为来自正确的服务器
祝你好运

@lukiffer-谢谢你的回复。你能推荐其他的替代方案吗?我应该为此编写哪些代码?首先,我会说使用noreply@yourdomain.com-这样,过滤器就可以自动发送电子邮件。此外,您还应在邮件中添加美国要求的选择退出和发件人身份信息,以避免被过滤。如果这是一个黑名单问题,有很多其他SMTP提供商与良好的声誉。AuthSMTP是我过去使用过的一个。好啊谢谢你能为我的问题提供示例代码吗?除了你的邮件内容之外,这并不是一个真正的代码问题@somnath发布了其他有用的工具来识别和解决代码之外的问题。请使用另一个SMTP服务器—您自己托管的服务器或商业提供商。例如:亚马逊简单电子邮件服务,或您的主机提供商。
public int SendMail(string mailto, string username, string password)
    {
        try
        {
            string mailFrom = "test@gmail.com";
            string siteName = "www.XYZ.com";
            MailAddress fromAddress = new MailAddress(mailFrom, siteName);
            SmtpClient mailClient = new SmtpClient();

            MailMessage message = new MailMessage();
            message.From = fromAddress;
            message.To.Add(mailto);

            message.Subject = "Your User Name and Password";
            message.IsBodyHtml = true;

            mailClient.Host = "relay-hosting.secureserver.net";
            mailClient.UseDefaultCredentials = false;
            mailClient.EnableSsl = false;

            string body = "<HTML><BODY><CENTER><H2>Your User Name  :'" + username + "' </H2><BR/><H2>Your Password :'" + password + "' </H2></CENTER></BODY></HTML>";

            message.Body = body;

            mailClient.Send(message);

            return 1;
        }
        catch (Exception ex)
        {
            return 0;
        }
    }
    <system.net>
    <mailSettings>
        <smtp from="test@gmail.com">
            <network host="relay-hosting.secureserver.net" />
        </smtp>
    </mailSettings>
  </system.net>