python 发送各种形式的 邮件

jopen 10年前

文件形式的邮件

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.text

import MIMEText

from email.header

import Header

sender = '***'

receiver = '***'

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msg = MIMEText('你好','text','utf-8') 中文需参数‘utf-8',单字节字符不需要

msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver,

msg.as_string())

smtp.quit()

HTML形式的邮件

!/usr/bin/env python3

coding: utf-8

import smtplib from email.mime.text

import MIMEText

sender = '***'

receiver = '***' s

ubject = 'pythonemail test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msg =

MIMEText('

你好

','html','utf-8')

msg['Subject'] =subject

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password) smtp.sendmail(sender, receiver,

msg.as_string()) smtp.quit()

带图片的HTML邮件
复制代码 代码如下:

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

sender = '***'

receiver = '***'

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msgRoot = MIMEMultipart('related')

msgRoot['Subject'] = 'test message'

msgText = MIMEText('Some HTML text and an image.


good!','html','utf-8')

msgRoot.attach(msgText)

fp = open('h:\python\1.jpg', 'rb')

msgImage = MIMEImage(fp.read())

fp.close()

msgImage.add_header('Content-ID', ' ')

msgRoot.attach(msgImage)

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver, msgRoot.as_string())

smtp.quit()

带附件的邮件

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

sender = '***'

receiver = '***'

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msgRoot = MIMEMultipart('related')

msgRoot['Subject'] = 'test message'

构造附件

att = MIMEText(open('h:\python\1.jpg', 'rb').read(), 'base64','utf-8')

att[“Content-Type”] = 'application/octet-stream'

att[“Content-Disposition”] = 'attachment; filename=“1.jpg”'

msgRoot.attach(att)

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver, msgRoot.as_string())

smtp.quit()

群邮件

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.text import MIMEText

sender = '***'

receiver = ['','*',……]

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msg = MIMEText('你好','plain','utf-8')

msg['Subject'] = subject

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()

各种元素都包含的邮件

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

sender = '***'

receiver = '***'

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

Create message container - the correct MIME type is multipart/alternative.

msg = MIMEMultipart('alternative')

msg['Subject'] = “Link”

Create the body of the message (a plain-text and an HTML version).

text = “Hi!\nHow are you?\nHere is the link you
wanted:\nhttp://www.python.org”

html = “““\

1 <p>Hi!<br>
2  
3    How are you?<br>
4  
5    Here is the <a href="http://www.python.org">link</a> you wanted.
6  
7 </p>

““”
Record the MIME types of both parts - text/plain and text/html.

part1 = MIMEText(text, 'plain')

part2 = MIMEText(html, 'html')

Attach parts into message container.

According to RFC 2046, the last part of a multipart message, in this case

the HTML message, is best and preferred.

msg.attach(part1)

msg.attach(part2)

构造附件

att = MIMEText(open('h:\python\1.jpg', 'rb').read(), 'base64','utf-8')

att[“Content-Type”] = 'application/octet-stream'

att[“Content-Disposition”] = 'attachment; filename=“1.jpg”

msg.attach(att)

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()

基于SSL的邮件

!/usr/bin/env python3

coding: utf-8

import smtplib

from email.mime.text import MIMEText

from email.header import Header

sender = '***'

receiver = '***'

subject = 'python email test'

smtpserver = 'smtp.163.com'

username = '***'

password = '***'

msg = MIMEText('你好','plain','utf-8') 中文需参数‘utf-8',单字节字符不需要

msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()

smtp.connect('smtp.163.com')

smtp.ehlo()

smtp.starttls()

smtp.ehlo() smtp.set_debuglevel(1)

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()