iT邦幫忙

0

自動下載郵件附件的程式

ACE 2023-05-11 08:44:511639 瀏覽
  • 分享至 

  • xImage

想請問下是否有可以自動掃描信箱,有新信件時自動下載郵件附檔到本機指定位子的程式,最好可以做到每五分鐘掃描一次。
程式需要免費
因為公司MAIL是自架,不能轉發到其他非公司信箱,所以也不能用google雲端或onedrive的外掛去掛載。

目前試過幾個方法
1.outlook寫VBA掛載腳本
有成功運作,不過此方法需要用到一個OFFICE中小企業版的授權,想找看看有無其他方法。

2.Mail Attachment Downloader
功能完美符合,不過需要付費使用,免費試用幾天後就跳訊息購買正式授權了。

想請問版上大神們有無免費方案可執行的程式。

看更多先前的討論...收起先前的討論...
Hans5300609 iT邦研究生 4 級 ‧ 2023-05-11 08:48:08 檢舉
Thunderbird?
不過自動下載附件通常很危險的說
GGU.IN iT邦新手 4 級 ‧ 2023-05-11 08:57:34 檢舉
https://sourceforge.net/projects/fetchmail/files/branch_6.4/
阿摔 iT邦新手 4 級 ‧ 2023-05-11 17:22:23 檢舉
自動下載很可怕喔..
自動下載附件真的蠻危險的。
在這麼做之前,請先確認郵件防護是不是足夠喔。
但,總會有漏網之魚的郵件,所以你還要注意存放附件的地方是不是有防毒軟體喔。
ACE iT邦新手 5 級 ‧ 2023-05-12 13:22:46 檢舉
我只要自動下載系統固定時間發的文件,那設定成只下載指定使用者與標題的信件附檔,就不會有下載其他有危險的信件了~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
dscwferp
iT邦高手 1 級 ‧ 2023-05-11 13:47:20

總算找到
2003年寫的 VBS + AspPOP3 元件
參考: https://www.brinkster.com/asppop3.htm
當時用這個定時自動幫公司
收取ISPA的公文內容及
下載文檔附件
以上
希望能幫您忙!

4
japhenchen
iT邦超人 1 級 ‧ 2023-05-12 07:55:44

用python解決!不用買程式,一切免費


您好,要用python檢查新郵件並把郵件的附件檔自動存到特定資料夾,您可以參考以下的方法:

  • 使用zmail模組,並利用get_latest()方法來獲取最新的郵件,然後使用mail.attachments屬性來獲取附件的列表,並使用**zmail.save_attachment()**方法來保存附件到指定的資料夾¹。例如:
import zmail

# 輸入帳號和密碼
server = zmail.server('your_email','your_password')

# 獲取最新的郵件
mail = server.get_latest()

# 獲取附件列表
attachments = mail.attachments

# 保存附件到指定資料夾
for attachment in attachments:
    zmail.save_attachment(mail,attachment,target_path='C:\\Temp\\')
  • 使用imaplibemail模組,並利用**IMAP4_SSL()方法來連接到Gmail伺服器,然後使用search()方法來搜尋未讀的郵件,並使用fetch()方法來獲取郵件內容,然後使用walk()方法來遍歷郵件的部分,並判斷是否有附件,如果有則使用open()write()**方法來保存附件到指定的資料夾²。例如:
import imaplib
import email

# 輸入帳號和密碼
user = 'your_email'
password = 'your_password'

# 連接到Gmail伺服器
imap_url = 'imap.gmail.com'
M = imaplib.IMAP4_SSL(imap_url)
M.login(user,password)

# 選擇收件匣
M.select('inbox')

# 搜尋未讀的郵件
typ, data = M.search(None,'UNSEEN')

# 遍歷每封郵件
for num in data[0].split():
    # 獲取郵件內容
    typ, data = M.fetch(num,'(RFC822)')
    raw_email = data[0][1]
    # 解析郵件內容
    email_message = email.message_from_bytes(raw_email)
    # 遍歷郵件的部分
    for part in email_message.walk():
        # 判斷是否有附件
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue
        # 獲取附件名稱
        filename = part.get_filename()
        # 保存附件到指定資料夾
        if filename:
            with open('C:\\Temp\\'+filename,'wb') as f:
                f.write(part.get_payload(decode=True))
ACE iT邦新手 5 級 ‧ 2023-05-12 17:51:23 檢舉

感謝!!來研究看看怎麼使用

大神好猛

我要發表回答

立即登入回答