使用Ruby通过Outlook发送消息的最简单方法是什么?

时间:2012-09-26 00:58:53

标签: ruby outlook win32ole

我的工作要求我为某些测试自动生成电子邮件。我一直在环顾四周,但还没找到一个可以快速实施的合理解决方案。它需要在outlook而不是其他邮件服务器,因为我们有一些奇怪的身份验证规则,我们需要选择保存草稿而不是发送消息。

显然win32ole可以做到这一点,但我找不到任何相当简单的例子。

2 个答案:

答案 0 :(得分:9)

假设存储了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”解决。

答案 1 :(得分:0)

如果Outlook帐户具有Web访问权限(通过outlook.com或office365.com),您还可以使用Mikel Lindsaar's Ruby email library。它适用于允许POP3,IMAP4或SMTP连接的许多不同电子邮件提供商。

我在sending and receiving Outlook email via Ruby上发布了一些可能有帮助的示例代码。对不起,我无法评论如何保存草稿。