成功的腳本:html
#coding:utf-8python
# 帶附件的郵件服務器
import smtplibapp
from email.mime.multipart import MIMEMultipart # python2.4及以前版本該模塊不是這樣調用的,而是email.MIMEMultipart.MIMEMultipart(),下同ui
from email.mime.text import MIMETextthis
from email.utils import parseaddr,formataddr.net
from email.header import Headerdebug
sender = '*****@qq.com'#發件人地址code
receiver = ['*****@qq.com']#收件人地址orm
smtpserver = 'smtp.qq.com'#郵件服務器
username = '*****@qq.com'#用戶名
password = '*******'#密碼 # qq郵箱打開,點擊帳戶,中間偏下位置打開smtp服務器時會自動生成
smtp = smtplib.SMTP()
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr.encode('utf-8') if isinstance(addr, unicode) else addr))
def send_email(msg):
msgRoot = MIMEMultipart('related')
# msgRoot['To'] = _format_addr(u'%s' % receiver)
msgRoot['to'] = '%s' % receiver
msgRoot['Subject'] = '反欺詐數據報' #郵件標題,這裏我把標題設成了你所發的附件名
msgText = MIMEText('%s'%msg,'html','utf-8')#你所發的文字信息將以html形式呈現
msgRoot.attach(msgText)
while 1:#持續嘗試發送,直到發送成功
try:
smtp.sendmail(sender, receiver, msgRoot.as_string())#發送郵件
print '***********'
break
except:
try:
smtp.connect(smtpserver)#鏈接至郵件服務器
smtp.login(username, password)#登陸郵件服務器
except:
print "failed to login to smtp server"#登陸失敗
if __name__ == "__main__":
MSG="hello python "#要發送的文字
# FILE="cust_id.csv,test.csv"#要發送的文件
send_email(MSG)
文件形式的郵件
[python] view plaincopy
- #!/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形式的郵件
[python] view plaincopy
- #!/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('<html><h1>你好</h1></html>','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郵件
[python] view plaincopy
- #!/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('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>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', '<image1>')
- msgRoot.attach(msgImage)
-
- smtp = smtplib.SMTP()
- smtp.connect('smtp.163.com')
- smtp.login(username, password)
- smtp.sendmail(sender, receiver, msgRoot.as_string())
- smtp.quit()
帶附件的郵件
[python] view plaincopy
- #!/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()
羣郵件
[python] view plaincopy
- #!/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('你好','text','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()
各類元素都包含的郵件
[python] view plaincopy
- #!/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 = """\
- <html>
- <head></head>
- <body>
- <p>Hi!<br>
- How are you?<br>
- Here is the <a href="http://www.python.org">link</a> you wanted.
- </p>
- </body>
- </html>
- """
-
- # 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的郵件
[python] view plaincopy
- #!/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.ehlo()
- smtp.starttls()
- smtp.ehlo()
- smtp.set_debuglevel(1)
- smtp.login(username, password)
- smtp.sendmail(sender, receiver, msg.as_string())
- smtp.quit()
文件形式的郵件
[python] view plaincopy
-
- #!/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形式的郵件
[python] view plaincopy
-
- #!/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('<html><h1>你好</h1></html>','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郵件
[python] view plaincopy
-
- #!/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('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>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', '<image1>')
- msgRoot.attach(msgImage)
-
- smtp = smtplib.SMTP()
- smtp.connect('smtp.163.com')
- smtp.login(username, password)
- smtp.sendmail(sender, receiver, msgRoot.as_string())
- smtp.quit()
帶附件的郵件
[python] view plaincopy
-
- #!/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()
羣郵件
[python] view plaincopy
-
- #!/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('你好','text','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()
各類元素都包含的郵件
[python] view plaincopy
-
- #!/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 = """\
- <html>
- <head></head>
- <body>
- <p>Hi!<br>
- How are you?<br>
- Here is the <a href="http://www.python.org">link</a> you wanted.
- </p>
- </body>
- </html>
- """
-
- # 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的郵件
[python] view plaincopy
-
- #!/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.ehlo()
- smtp.starttls()
- smtp.ehlo()
- smtp.set_debuglevel(1)
- smtp.login(username, password)
- smtp.sendmail(sender, receiver, msg.as_string())
- smtp.quit()