背景:
每个工作日我都会收到一封来自已知发件人的电子邮件。发件人在电子邮件中附加了一个附件。我必须使用 Python 脚本处理该附件。
问题:
对于我来说,将附件从 Outlook 中取出并放到我的 shell 帐户(或本地文件系统)上的最佳(自动)方法是什么,以便我可以使用脚本处理它,而不必每天手动打开文件并保存附件?
答案1
我假设您有一台 Outlook 正在与之通信的 Exchange 服务器。服务器上是否启用了 IMAP?如果启用了,编写一个程序来搜索 IMAP 服务器以查找过去 24 小时内收到的来自特定发件人的电子邮件并解析出(我假设是)MIME 附件应该是相当简单的。
答案2
我正在研究同样的事情并找到了一个脚本。
- 您必须打开 Outlook,然后按Alt+F11
- 在左侧窗格中展开 Microsoft Outlook 对象
- 双击此 Outlook 会话
复制并粘贴此代码:
(注意:在“Const save_path As String =“c:\Temp\””处(将“c:\Temp\”替换为文件服务器的路径。记住路径始终以“\”结尾)
Sub SaveToFolder(MyMail As MailItem) Dim strID As String Dim objNS As Outlook.NameSpace Dim objMail As Outlook.MailItem Dim objAtt As Outlook.Attachment Dim c As Integer Dim save_name As String 'Place path to sav to on next line. Note that you must include the 'final backslash Const save_path As String = "c:\Temp\" strID = MyMail.EntryID Set objNS = Application.GetNamespace("MAPI") Set objMail = objNS.GetItemFromID(strID) If objMail.Attachments.Count > 0 Then For c = 1 To objMail.Attachments.Count Set objAtt = objMail.Attachments(c) save_name = Left(objAtt.FileName, Len(objAtt.FileName) - 5) save_name = save_name & Format(objMail.ReceivedTime, "_mm-dd-yyyy_hhmm") save_name = save_name & Right(objAtt.FileName, 5) objAtt.SaveAsFile save_path & save_name Next End If Set objAtt = Nothing Set objMail = Nothing Set objNS = Nothing End Sub
转到菜单上的调试并编译...
- 关闭 VB 屏幕
- 转到规则并创建规则:当收到您在通讯组中提到的人员的电子邮件时,运行脚本(选择脚本(您的脚本将被列出))。我会在规则中添加通知,以便您知道规则也运行了,并将电子邮件移动到特定文件夹。
- 关闭并重新打开 Outlook。
答案3
先进的ETL处理器可以自动回复电子邮件,保存附件并根据各种规则处理电子邮件