19

重複の可能性:
Python で電子メールの添付ファイルを送信する方法

私はPythonを使用してsendEmailでいくつかの作業を行いました。このコードを取得します

import smtplib
def SendAnEmail( usr, psw, fromaddr, toaddr):
    # SMTP server
    server=smtplib.SMTP('smtp.gmail.com:587')
    server.starttls()
    server.login(usr,psw)
    # Send 
    msg="text message ....... "

    server.sendmail(fromaddr, toaddr, msg)
    server.quit()
if __name__ == '__main__':
    # Fill info...
    usr='example@sender.ex'
    psw='password'
    fromaddr= usr
    toaddr='example@recevier.ex'
    SendAnEmail( usr, psw, fromaddr, toaddr)

画像を追加する必要がある場合 (画像を添付)、どうすればいいですか? 誰でもアイデアがありますか?

4

2 に答える 2

45
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart


def SendMail(ImgFileName):
    with open(ImgFileName, 'rb') as f:
        img_data = f.read()

    msg = MIMEMultipart()
    msg['Subject'] = 'subject'
    msg['From'] = 'e@mail.cc'
    msg['To'] = 'e@mail.cc'

    text = MIMEText("test")
    msg.attach(text)
    image = MIMEImage(img_data, name=os.path.basename(ImgFileName))
    msg.attach(image)

    s = smtplib.SMTP(Server, Port)
    s.ehlo()
    s.starttls()
    s.ehlo()
    s.login(UserName, UserPassword)
    s.sendmail(From, To, msg.as_string())
    s.quit()
于 2012-10-25T15:15:42.083 に答える
0

ドキュメントを読んでください。smtpblib ドキュメントの最後の数行には次のように書かれています。

注 一般に、email パッケージの機能を使用して電子メール メッセージを作成し、それを文字列に変換して sendmail(); 経由で送信することをお勧めします。電子メールを参照してください: 例。

そしてあなたを指す: https://docs.python.org/3/library/email.examples.html

これには正確な例があります。

于 2012-10-25T13:58:08.940 に答える