向自己发送 HTML 电子邮件以测试它们的快速、简单的方法是啥?
Posted
技术标签:
【中文标题】向自己发送 HTML 电子邮件以测试它们的快速、简单的方法是啥?【英文标题】:What's a quick, easy way to send HTML emails to myself to test them?向自己发送 HTML 电子邮件以测试它们的快速、简单的方法是什么? 【发布时间】:2010-10-02 10:17:16 【问题描述】:我的任务是为不同的电子邮件/网络邮件客户端优化 html 电子邮件。我曾经通过在 Outlook Express 中做一个技巧来测试 HTML 文件,让它发送原始 HTML,但微软现在似乎已经停止提供 Outlook Express(我认为“Live Mail”应该取代它)。
所以我的问题是,有没有一种简单、快速的方式来发送 HTML 电子邮件?甚至是可以完成这项工作的免费软件程序?
【问题讨论】:
【参考方案1】:Ruby 变体:
require "mail"
options =
:address => "smtp.gmail.com",
:port => 587,
:domain => "smtp.gmail.com",
:user_name => "me@gmail.com",
:password => "password",
:enable_starttls_auto => true,
:authentication => :plain,
Mail.defaults do
delivery_method :smtp, options
end
mail = Mail.new do
to "me@gmail.com"
from "Me Me me@gmail.com"
subject "test email"
html_part do
content_type "text/html; charset=UTF-8"
body File.read("index.html")
end
end
mail.deliver
不要忘记启用来自https://www.google.com/settings/security/lesssecureapps的访问权限
【讨论】:
【参考方案2】:function sendHtml(recipients, subject, html)
var mail = Server.CreateObject("CDO.Message");
mail.From = "Tester <tester@example.com>";
mail.Subject = subject;
mail.To = recipients.join(";");
mail.HTMLBody = html;
// Do the following if you want to directly use a specific SMTP server
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/smtpserver")
= "smtp.example.com";
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport")
= 25;
mail.Configuration.Fields.Update();
mail.Send();
【讨论】:
【参考方案3】:如果您正在运行 .NET 并且拥有 Gmail 帐户,这是一种简单的方法
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
;
using (var message = new MailMessage(fromAddress, toAddress)
Subject = subject,
Body = body
)
smtp.Send(message);
查看Sending email in .NET through Gmail了解更多详情
【讨论】:
.Net 中实际上没有内置 SMTP 服务器。只是用于与现有 SMTP 服务器交互的类。【参考方案4】:对话很晚,但这是发送 html 电子邮件的最快方法(尽管远非最佳实践):
在网络浏览器(如网页)中查看您的渲染 html,然后ctrl+a
选择整个页面,然后ctrl+c
复制和ctrl+v
将渲染的 html 结果粘贴到正文中您的电子邮件。没有比这更容易的了……
请注意,如果您希望收件人看到您的图片,则需要托管它们。
【讨论】:
【参考方案5】:如果您只需要接收和查看您的应用程序发送的任何电子邮件,Test Mail Server Tool 可以提供帮助。
【讨论】:
toolheap.com/test-mail-server-tool/TestMailServerToolSetup.exe【参考方案6】:Puts Mail 是当今最好的选择。查看 Puts Mail 的创建者 an answer to a similar question。
【讨论】:
【参考方案7】:如果您使用的是 Mac,则可以使用 Safari 和 Mail 快速发送 HTML 电子邮件。我在下面的链接中写了有关详细信息的博客,但基本上您只需在 Safari 中查看您的 HTML 文件,然后选择“文件”>“此页面的邮件内容”。
http://www.ravelrumba.com/blog/send-html-email-with-safari-mail-for-fast-testing/
【讨论】:
【参考方案8】:我不会甚至使用任何语言 ...
我会停在MailChimp 并设置一个free account(每月最多 500 个订阅者和 3000 次发送)... 3000 次发送就足以测试,对吗? :)
它拥有您专业发送电子邮件所需的所有工具(并且可能为您的客户/朋友设置一个帐户,以便他们/他可以在他们的时事通讯中使用 MailChimp)
当您使用它时,请查看他们的 resources 页面以及了解我们可以使用 CampaignMonitor 自己的 Guide to CSS support in email clients 在时事通讯中使用什么的完美工具
希望对你有帮助
【讨论】:
caugh 你不会碰巧在 MailChimp 工作..? 不,只是一个快乐的用户 :) 我也使用 Campaign Monitor :D 设置需要几分钟,但这是发送 HTML 电子邮件的一种非常简单且可靠的方式。只需制作一个自定义模板,您就可以编写和测试自己的 HTML 电子邮件。 免费账户无法再实现这一点,它需要“标准”账户,每月 14.99 美元。使用“自定义”模板。 :-(【参考方案9】:我相信您可以从 Mozilla 的 Thunderbird 电子邮件客户端发送 html 电子邮件。
http://www.mozillamessaging.com/en-US/thunderbird/
这是我用来发送测试电子邮件的。或者我猜你也可以使用你的电子邮件提供商。
【讨论】:
【参考方案10】:使用 ASP 或 WSH 是一种仅适用于 Windows 的免费解决方案,您通常不需要安装任何特殊的东西。我选择 JScript 而不是 VBScript:
function sendHtml(recipients, subject, html)
var mail = Server.CreateObject("CDO.Message");
mail.From = "Tester <tester@example.com>";
mail.Subject = subject;
mail.To = recipients.join(";");
mail.HTMLBody = html;
// Do the following if you want to directly use a specific SMTP server
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/smtpserver")
= "smtp.example.com";
mail.Configuration.Fields.Item(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport")
= 25;
mail.Configuration.Fields.Update();
mail.Send();
注意:但是,您的 HTML 最终可能会使用这种方法稍微重新格式化。
【讨论】:
【参考方案11】:你也可以使用PowerShell
【讨论】:
【参考方案12】:如果您只是想测试 HTML 电子邮件是否在各种客户端中正确显示,我会使用 sendmail.exe(仅限 Windows)。
您可以保存一个 .html 文件并将其作为电子邮件内容在命令行上通过管道传输到该程序中。 from/to/subject/server 等有命令行选项。
这将允许您通过编辑 .html 文件并再次运行命令行来快速发送和重新发送电子邮件。无需编程。
编辑:Linux 有一个类似的同名命令行工具。
【讨论】:
【参考方案13】:我使用phpMailer 发送 HTML 电子邮件(通常是批量)。它对我很有用。
【讨论】:
【参考方案14】:我会使用 python,下面是一个示例,如何创建带有默认文本的 HTML 电子邮件:http://docs.python.org/library/email-examples.html 您可以对其进行参数化、封装在函数中、从文件中读取内容等(确保将“s = smtplib.SMTP('localhost')”中的 localhost 设置为您的 smtp 服务器)
【讨论】:
截至 2020 年 1 月 31 日,上面提供的链接已损坏【参考方案15】:也许您可以在 .NET 中使用 System.Net.Mail?
您可以从电子邮件模板中读取并添加到 MailMessage 正文。
发送电子邮件
System.Net.Mail.MailMessage msg = CreateMailMessage();
SmtpClient sc = new SmtpClient();
sc.Host = ConfigurationManager.AppSettings["SMTPServer"];
sc.Port = 0x19;
sc.UseDefaultCredentials = true;
sc.Send(msg);
【讨论】:
以上是关于向自己发送 HTML 电子邮件以测试它们的快速、简单的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章