附件图像使用Python通过邮件发送

时间:2012-10-25 13:46:37

标签: python smtp

  

可能重复:
  How to send Email Attachments with 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)

如果我需要添加图片(附件图片)怎么办?有人有想法吗?

2 个答案:

答案 0 :(得分:26)

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):
    img_data = open(ImgFileName, 'rb').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()

答案 1 :(得分:0)

阅读文档。 smtpblib文档的最后几行是:

  

注意一般情况下,您需要使用电子邮件包的功能来构建电子邮件,然后您可以将其转换为字符串并通过sendmail()发送;看电子邮件:例子。

并指出:https://docs.python.org/3/library/email.examples.html

有一个确切的例子。