【发布时间】:2014-01-10 15:40:00
【问题描述】:
我正在使用 Nuget Package Mvc.Mailer 向我的客户发送电子邮件。我关注了this guide,我遇到了一件非常烦人的事情。我发送的电子邮件总是被发送到垃圾邮件。这是我的代码的样子:
用户邮箱:
public virtual MvcMailMessage Authenticatie(User user, string email)
{
ViewBag.User = user;
ViewBag.Email = email;
return Populate(x =>
{
x.Subject = "Your registration at Example";
x.ViewName = "Registration";
x.IsBodyHtml = true;
x.From = "Name <noreply@example.com>";
x.To.Add(email);
});
}
Registration.cshtml:
using Mvc.Mailer
<div>
<p style="display: none">Stuff in my email</p>
<h1 style="background: #e68425; text-align: center; color: white; margin: 0px; padding: 10px;">
A bunch of HTML
</h1>
<div style="background: #cf7721; text-align: center; padding: 10px;">
<h3 style="margin: 0px;"><a href="@Url.Abs(Url.Action("ALink", "Administration", new { login = @ViewBag.User.Login, h = @ViewBag.User.Activation} ))">Activate account</a></h3>
</div>
<div>
<p>Dear client,</p>
<p>
Thanks for bla bla bla... And more stuff.
</p>
<table>
<tr>
<td>Login:</td>
<td>@ViewBag.User.Login</td>
</tr>
<tr>
<td>Activatiecode:</td>
<td>@ViewBag.User.Activation</td>
</tr>
</table>
</div>
Web.config:
<mailSettings>
<!-- Method#1: Configure smtp server credentials -->
<smtp from="Example <noreply@@example.com>">
<network enableSsl="false" host="mail.@example.com" port="25" userName="noreply@example.com" password="xxx" />
</smtp>
</mailSettings>
我们的尝试
- 通过标准方式使用 SmtpClient 发送我们的电子邮件。这封邮件没有进入垃圾邮件。
- 将 x.From 设置为更好的名称。
- 不同的内容类型
x.IsBodyHtml = true- 从我们的电子邮件客户端(相同地址)发送电子邮件。这封邮件没有进入垃圾邮件。
问题
- 我们的电子邮件是否会因过度使用 html 而被过滤?
- 有没有人在使用这个 Nuget 包之前遇到过这个问题?
- 如何阻止我的电子邮件进入垃圾邮件?
- 最重要的是:他们为什么要发送垃圾邮件?
【问题讨论】:
-
关于您的问题,您是否测试过多个电子邮件客户端? (Gmail/Outlook/雅虎/等)。垃圾邮件主要由 ISP/内容/个人过滤器过滤,因此您必须考虑让您的电子邮件看起来不那么“垃圾邮件”。您可以尝试使用默认的 UserMailer Welcome() 模板并查看它是否也会进入垃圾邮件?
-
我不认为这是原因,因为当我使用 SmtpClient 发送完全相同的电子邮件时,它不会进入垃圾邮件。那一定意味着它不是内容,对吧?我会尝试一些不同的客户端!
-
这取决于。 SmtpClient 可能只是在您的测试中发送纯文本而不是实际发送 HTML。您可以在 HTML 消息中“修复”很多事情,但首先您需要检查模板 MVCMailer Welcome() 消息是否进入垃圾邮件。从那里你可以发现它可能是一个 ISP/不受信任的发件人问题。
标签: email asp.net-mvc-4 spam nuget-package