【问题标题】:Way to delay SMTP pickup outgoing mail延迟 SMTP 取件传出邮件的方法
【发布时间】:2015-11-18 08:15:56
【问题描述】:

我正在开发一个应用程序(在 Delphi XE8 中),它允许用户发送电子邮件。我选择的解决方案是简单地将电子邮件保存为文本文件,在 SMTP 提取目录中包含“发件人:”和“收件人:”字段,到目前为止效果很好。我使用在 IIS 6 中设置的 SMTP 虚拟服务器。

但是,一个新的要求是能够选择电子邮件的发送时间。有什么方法可以通过文本文件指定,还是只能通过更改 IIS 设置?如果有人提供任何提示,我将不胜感激。

【问题讨论】:

  • afaik IIS 不是邮件服务器。您在使用 Exchange 吗?
  • 嗨@mjn,不,我没有使用 Exchange。我在我的服务器机器上使用 IIS 设置了一个 SMTP 虚拟服务器。抱歉不清楚,我会编辑我的问题。
  • 我认为 IIS6 中不存在这样的功能。您可能希望将文件保存到其他目录,并根据您的时间安排专门的取件服务将它们移动到 SMTP 取件目录。您的时间信息可能是该文本文件中的标题,您的取件服务将在将其移动到 SMTP 取件目录之前将其删除。
  • @kobik,是的,这也可能是一种选择。我会调查一下,谢谢你的回复!

标签: email delphi smtp iis-6 delphi-xe8


【解决方案1】:

如果您的代码可以正确检测 From 和 To 字段,为什么不在文本文件中添加一个 Time: 条目,如果未达到时间则跳过该文件?

【讨论】:

  • 感谢您的回复!我想我可以按发送顺序存储预期的电子邮件,并在时间到来时通过单独的线程“释放”它们……我希望有一种更方便的方法来做到这一点。
【解决方案2】:

尝试使用 IMAP4(用于基于服务的邮件客户端处理邮件和文件夹的标准协议)而不是 SMTP。然后使用支持延迟发送消息的电子邮件客户端,并使用其脚本配置消息发送方式。

如果您的程序一直运行到发送时间,您还可以创建一个线程等待您希望发送消息的时间,但我想这太简单了:)

【讨论】:

  • 感谢您的回复!这似乎有点不稳定,因为该应用程序将安装在客户的计算机上,虽然他们很乐意为我设置一个 SMTP 提取文件夹,但他们不太可能只为这个应用程序更改他们的电子邮件例程。我想我将不得不采用线程方法!但是感谢您的提示,我必须了解更多有关 IMAP4 的信息!
  • 邮件客户端不必在本地托管,它也可以是像 gmail 这样的基于 Web 的客户端。有关编码示例,请参阅此线程:stackoverflow.com/questions/33461085/…
  • 感谢@Jur 的宝贵时间和优秀的例子!我一定会更多地考虑您的建议。
  • IMAP 不是为发送电子邮件而设计的。它是一种访问邮箱中项目的协议。他应该使用 SMTP 发送电子邮件。
猜你喜欢
  • 2010-10-24
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多