0
我想發送一個壓縮文件夾作爲電子郵件附件從gmail帳戶到gmail帳戶。腐敗的電子郵件附件與python
我發送簡單的.txt文件時沒有問題,但無論使用什麼壓縮類型,我都無法成功發送壓縮文件。即使我壓縮了一個文件,當我從Gmail下載它時,它也會損壞。我已經嘗試了幾件事情,比如先用ccrypt
加密文件然後發送。該文件仍然損壞。
如果我通過瀏覽器正常發送電子郵件並使用相同的附件,則不適用。這讓我想知道它是Gmail還是我用來指責的代碼。
這是我的代碼:
#!/usr/bin/python
import os, re
import sys
import smtplib
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.MIMEText import MIMEText
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
sender = '[email protected]'
password = "password"
recipient = sys.argv[1]
subject = ''
message = sys.argv[3]
def main():
msg = MIMEMultipart()
msg['Subject'] = sys.argv[2]
msg['To'] = recipient
msg['From'] = sender
part = MIMEText('text', "plain")
part.set_payload(message)
msg.attach(part)
session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
session.ehlo()
session.starttls()
session.ehlo
session.login(sender, password)
fp = open(sys.argv[4], 'rb')
msgq = MIMEBase('application', "octet-stream")
msgq.set_payload(fp.read())
fp.close()
# Encode the payload using Base64
filename=sys.argv[4]
msgq.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(msgq)
# Now send or store the message
qwertyuiop = msg.as_string()
session.sendmail(sender, recipient, qwertyuiop)
session.quit()
if __name__ == '__main__':
main()
它被用作:
./send_email.py [email protected] "title" "body" attachment.rar
,你應該在你的登錄信息填寫在腳本的頂部。
快速的:)好樣的! – hakermania
我幾天前寫了一個類似的腳本,面臨類似的問題:) – Verma
同樣的問題,不適合我 – Mans