2011-11-10 113 views
2

我从我的ASP.net Web应用程序发送电子邮件。C#.Net消息将发送到垃圾邮件文件夹

邮件成功发送失败,但大多数都是垃圾邮件文件夹。

请帮我过来垃圾邮件过滤器。

我发送邮件代码

public void SendMail(string FromAddress, string ToAddress, string Subject, string BodyText) 
    { 
     MailMessage mailMsg = new MailMessage(); 

     mailMsg.From = new MailAddress(FromAddress,"My Name"); 
     mailMsg.To.Add(new MailAddress(ToAddress)); 
     mailMsg.Subject = Subject; 
     mailMsg.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8"); 

     System.Net.Mail.AlternateView plainView = System.Net.Mail.AlternateView.CreateAlternateViewFromString 
     (System.Text.RegularExpressions.Regex.Replace(BodyText, @"<(.|\n)*?>", string.Empty), null, "text/plain"); 
     System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(BodyText, null, "text/html"); 

     mailMsg.AlternateViews.Add(plainView); 
     mailMsg.AlternateViews.Add(htmlView); 

     // Smtp configuration 
     SmtpClient smtp = new SmtpClient(); 
     smtp.Host = "smtp.mysite.com"; 

     smtp.Credentials = new System.Net.NetworkCredential(FromAddress, "password"); 
     smtp.EnableSsl = false; 
     try 
     { 
      smtp.Send(mailMsg); 
     } 
     catch (Exception ex) 
     { 

      throw ex; 
     } 
    } 
+2

我怀疑这与.NET或C#有什么关系。这些消息的内容是什么? –

+0

同意:这与内容有关。当我查看代码时,内容似乎为空... – Jan

+1

您是否查看了垃圾邮件文件夹中邮件的标题?可能会添加分类标题,解释为什么它被标记为垃圾邮件。您是否从具有有效的现有电子邮件域的电子邮件地址发送邮件? –

回答

6

一两件事,突出的是,你永远不会定身。我会删除此行:

// Remove the html alternate view 
mailMsg.AlternateViews.Add(htmlView); 

并尝试以下(未经测试):

// Set the html view to be the default view, leaving the plain text view as the only alternative view 
mailMsg.IsBodyHtml = true; 
mailMsg.Body = htmlView; 
+0

这不会帮助保持邮件不在垃圾邮件文件夹中。相反,相反。 –

+0

@DanielFischer,在某种意义上是正确的。这一切都取决于消息的内容。虽然(我认为)没有设置身体不会对情况有所帮助, –

4

邮件经常被标记为垃圾邮件由于受特殊的话,发送者的域名或的内容邮件或附件。所以我认为它与发送机制(如c#或.NET)没有任何关系。

1

有很多原因可能会将您的电子邮件标记为垃圾邮件。 This是如何尽量避免您的电子邮件被标记为垃圾邮件的好名单。根据我的经验,尽管使用AuthSMTP等服务反而更加不利。

相关问题