【问题标题】:How do i send an email when i already have it as a string?当我已经将电子邮件作为字符串发送时,如何发送?
【发布时间】:2012-01-23 15:09:52
【问题描述】:

实际上,我正在尝试发送一些模板电子邮件,以便我可以测试一些处理从邮箱读取的组件。

我可以只加载 Outlook 并发送几封电子邮件,但我正在寻找一种可以一次阅读数千封电子邮件的解决方案,因此我需要批量发送这些模板以测试阅读代码。

当我说批量发送时......我有大约 10 到 15 个模板(不同),我想将每个模板发送大约 1,000 个副本到给定邮箱。

现在这是症结所在......

我可以启动一个 SMTP 客户端实例并声明一个新的 MailMessage 对象,然后使用 SMTP 客户端发送它...问题是我的电子邮件模板包含自定义标头信息,所以它不仅仅是一个问题msg.Body = someText,然后设置收件人和发件人以及主题字段。

我不想花时间手动解析这些电子邮件,因为标题很长,并且包含许多我将在稍后处理的自定义值。

那么,如果我有一个 txteml 文件,我该如何将原始文本发送到我的邮箱,以便我可以执行上述测试?

【问题讨论】:

标签: c# email tcpclient smtpclient


【解决方案1】:

我知道最好的方法是使用 MailBee.NET 对象,它们不是免费的,但您可以下载试用版:http://www.afterlogic.com/mailbee-net/email-components

那么你正在寻找的是这样的:

            MailBee.Mime.MailMessage message = new MailMessage();
            message.LoadMessage(filestream);
            MailBee.SmtpMail.Smtp.QuickSend(message);

披露:我不为 AfterLogic 工作,但他们的一些工具对 Elastic Email 有很大帮助 (http://elasticemail.com)

【讨论】:

  • 是的,有很多这样的“邮件组件”我希望自己推出以节省 500 美元的账单,现在我已经使用名为 QuickSoft 的公司的 SMTP Express 解决了这个问题。这是我们内部已经拥有的产品,因此没有任何成本,我所做的只是将我的原始字符串转储到给定拾取目录中名为anything.eml 的文件中,它会完成繁重的工作。
【解决方案2】:

如果您有格式正确的 RFC822 消息,只需在 SMTP 事务的 DATA 阶段按原样传输即可。在 Unix 上,它基本上只是

sendmail -oi -t <file

在某些 Linux 发行版上,sendmail 未安装在 PATH 上;如果您无法自己做出一些明智的猜测,请尝试 /usr/lib/sendmail 或咨询特定发行版的论坛。

【讨论】:

    【解决方案3】:

    在我的搜索中出现的另一个是电子邮件架构师的EASendMail。与 MailBee.NET 一样,它不是免费的,但我发现 specific documentation 通过调用 SendRawMail 方法显示了您要求的功能。该示例在 C++/CLI 中,但同样适用于用 C# 或 VB.NET 编写的代码。如果我最终使用试用版进行测试,我会在此处发布我的反馈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 2021-12-26
      • 2017-02-01
      • 1970-01-01
      相关资源
      最近更新 更多