【发布时间】:2012-09-17 13:45:54
【问题描述】:
我的工作要求我为某些测试自动生成电子邮件。我一直在环顾四周,但未能找到可以快速实施的合理解决方案。它需要在 Outlook 而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。
显然 win32ole 可以做到这一点,但我找不到任何相当简单的例子。
【问题讨论】:
我的工作要求我为某些测试自动生成电子邮件。我一直在环顾四周,但未能找到可以快速实施的合理解决方案。它需要在 Outlook 而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。
显然 win32ole 可以做到这一点,但我找不到任何相当简单的例子。
【问题讨论】:
假设 Outlook 凭据已存储并且您设置为自动登录到 Outlook,WIN32OLE 可以很好地完成此操作:
require 'win32ole'
outlook = WIN32OLE.new('Outlook.Application')
message = outlook.CreateItem(0)
message.Subject = "Hey look a subject!"
message.Body = "Yes this is dog"
message.Recipients.Add 'dog@dog.com'
message.Recipients.Add 'cat@dog.com'
message.Attachments.Add('C:\Path\To\File.txt')
#Want to save as a draft?
message.Save
#Want to send instead?
message.Send
事实上,这在“Automating Outlook with Ruby: Saving Mail Messages To Files”中有很好的记录,就像用 Ruby 自动化其余的窗口一样。
您可能遇到授权问题,如果出现,可以使用“Advanced Security for Outlook”解决。
【讨论】:
msg._invoke(msg.ole_methods.select {|m| m.name=="Send"}[0].dispid,[],[]) 调用发送,不知道为什么,但是你去...
如果 Outlook 帐户具有 Web 访问权限(通过 outlook.com 或 office365.com),您也可以使用 Mikel Lindsaar's Ruby email library。它适用于许多允许 POP3、IMAP4 或 SMTP 连接的不同电子邮件提供商。
我在sending and receiving Outlook email via Ruby 上发布了一个包含一些示例代码的条目,这可能会有所帮助。抱歉,我无法评论如何保存草稿。
【讨论】: