向自己发送 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 电子邮件以测试它们的快速、简单的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

发送批量电子邮件

使用 html Mailto 向多个收件人发送电子邮件:不起作用

Jenkins 配置邮件发送测试报告

Paypal 快速结帐支付更多(问题)

以 HTML 格式发送电子邮件 [重复]

python 生成测试报告并发送邮件