我正在尝试使用 VB.NET 发送电子邮件。
有两个要求:
- 电子邮件将保存在 Outlook(他们唯一的电子邮件客户端)中的“已发送邮件”文件夹中。
- PDF(即时生成)附加到电子邮件中。
我目前正在创建一个新的MailMessage并通过SmtpClient发送,但我相信这是从服务器发送的,而不是从客户端发送的。
这可能吗?
编辑:这是一个 winforms 应用程序,目的是向客户发送报告。
我正在尝试使用 VB.NET 发送电子邮件。
有两个要求:
我目前正在创建一个新的MailMessage并通过SmtpClient发送,但我相信这是从服务器发送的,而不是从客户端发送的。
这可能吗?
编辑:这是一个 winforms 应用程序,目的是向客户发送报告。
我认为您需要执行以下操作之一才能获得所需的确切功能:
作为一个更简单的选择,如何密件抄送用户(将进入他们的收件箱)并配置 Outlook 规则以将其移动到已发送的项目?
你是对的,它不会最终出现在用户发送的项目中。您将遇到的问题之一是 Outlook 必须执行此操作的 API 已被病毒利用,因此用户每次都需要确定发送。
我会研究您是否可以通过与 Exchange 交谈来做到这一点。编写 Outlook 脚本和直接与 Exchange 对话都有 API。
只需使用 Exchange WebDav API。
以下是有关如何使用 WebDav 发送电子邮件的 Microsoft 支持示例:Q296713
注意:抱歉,上面的示例适用于 VB 6,将代码移植到 VB.NET 应该非常简单(另外,您可以使用 System.Xml 类和/或 StringBuilder 来帮助构建 WebDav xml 请求)。
您必须使用 Exchange 服务器 API 或拥有 Outlook 的本地副本并使用 Outlook 客户端 API 才能实现此目的。SMTP 客户端和交换器实际上几乎没有什么关系,除了 Exchange 服务器知道如何处理 SMTP 消息这一事实。
您最好只发送两份电子邮件,一份给发件人,一份给收件人。让它出现在发送的项目中并不是那么简单,但它会减少工作量并实现相同的目标。
我想,为什么我们不能在我们的数据库中做出规定,并且在发送电子邮件后,我们发送的相同详细信息也应该保存在我们的数据库中,并在用户单击已发送项目按钮时可用。