【问题标题】:How do I compose an email for Office365 using Delphi?如何使用 Delphi 为 Office365 撰写电子邮件?
【发布时间】:2018-05-29 21:51:47
【问题描述】:

我需要有关如何允许最终用户在 Delphi 代码中撰写电子邮件的信息。我们的 Delphi 版本是 Delphi Seattle(我认为是 10.1?)我们使用 office365 作为我们的电子邮件程序。我需要在电子邮件正文中预先填写收件人和一些 html。最终用户需要完成电子邮件的正文,然后单击发送按钮。

我们曾经使用可靠的“mailto”命令行,然后显示一个电子邮件表单。但它只适用于纯文本,没有 html。我现在需要在电子邮件正文中包含 html。我转而使用古老的半可靠 TOutlookApplication 组件并在代码中使用它通过 OLE 执行此操作。我确实看到弹出一个对话框,并且 html 似乎可以正确呈现,但发送按钮似乎什么也没做。查看 TOutlookApplication 使用的代码,它似乎自 XP 的辉煌时代以来就没有更新过。

我正在使用 Delphi Seattle。我认为我不能将 Indy 组件与 stmp 一起使用,因为必须存在电子邮件对话框才能编写电子邮件,而且我没有看到 Indy 显示表单的方法。谁能告诉我我必须做什么才能完成这项工作?如果有人想使用 TOutlookApplication 查看我当前的代码,我可以发布它,但它就像该组件的 1,000 个其他 Delphi 示例一样。当然,其他人已经克服了这一点,对吧?

我有这方面的更多信息。我在虚拟机上运行我的应用程序,但我的 Outlook 在桌面上运行。在桌面上运行应用程序后,它运行良好。我什至收到了来自 vm 的测试电子邮件。我相信虚拟机知道桌面应用程序。我的错!

【问题讨论】:

  • 你试过 MAPI 吗?
  • "我认为我不能将 Indy 组件与 stmp 一起使用,因为必须存在电子邮件对话框才能编写电子邮件,而且我没有找到解决方法Indy 显示表单" - Indy 是一个非可视组件库。如果需要 UI,则必须提供自己的 UI(通过 OLE 或 MAPI 访问时,Outlook 会提供自己的 UI)。 Indy 具有通过 SMTP 发送电子邮件的组件(TIdMessageTIdSMTP),您只需显示自己的 UI 以获取用户输入,然后将该输入分配给 TIdMessage 组件并使用 TIdSMTP 发送组件。
  • 看起来像个骗子:stackoverflow.com/questions/8463866/…
  • 来自 Dave Nottage 的链接是我使用的示例。它不适用于 Office365。我非常明确地说,它可能在过去可以工作,但现在已经不行了。
  • Jerry Dodge,MAPI 是什么以及它有什么不同?

标签: delphi office365


【解决方案1】:

我遇到的问题是由于在虚拟机上运行造成的。如果有其他 dolts 尝试运行使用 OLE 从 VM 访问 Outlook 的应用程序,请确保 在 VM 上有 Outlook。或者从安装了 Outlook 的某个地方(例如桌面)运行您的应用程序。

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2017-10-12
    • 2016-05-02
    • 2015-01-20
    相关资源
    最近更新 更多