如何将 Outlook 电子邮件附件发送到文件服务器?

如何将 Outlook 电子邮件附件发送到文件服务器?

背景:

每个工作日我都会收到一封来自已知发件人的电子邮件。发件人在电子邮件中附加了一个附件。我必须使用 Python 脚本处理该附件。

问题:

对于我来说,将附件从 Outlook 中取出并放到我的 shell 帐户(或本地文件系统)上的最佳(自动)方法是什么,以便我可以使用脚本处理它,而不必每天手动打开文件并保存附件?

答案1

我假设您有一台 Outlook 正在与之通信的 Exchange 服务器。服务器上是否启用了 IMAP?如果启用了,编写一个程序来搜索 IMAP 服务器以查找过去 24 小时内收到的来自特定发件人的电子邮件并解析出(我假设是)MIME 附件应该是相当简单的。

答案2

我正在研究同样的事情并找到了一个脚本。

  1. 您必须打开 Outlook,然后按Alt+F11
  2. 在左侧窗格中展开 Microsoft Outlook 对象
  3. 双击此 Outlook 会话
  4. 复制并粘贴此代码:

    (注意:在“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
    
  5. 转到菜单上的调试并编译...

  6. 关闭 VB 屏幕
  7. 转到规则并创建规则:当收到您在通讯组中提到的人员的电子邮件时,运行脚本(选择脚本(您的脚本将被列出))。我会在规则中添加通知,以便您知道规则也运行了,并将电子邮件移动到特定文件夹。
  8. 关闭并重新打开 Outlook。

答案3

先进的ETL处理器可以自动回复电子邮件,保存附件并根据各种规则处理电子邮件

http://www.dbsoftlab.com/etl-tools/advanced-etl-pocessor-news/loading-excel-files-from-emails-questions-from-the-customer.html

相关内容