Python学习笔记(十四)——发送电子邮件和短信
2018-02-14 12:11
429 查看
SMTP
#-*- encoding: utf-8 -*- import os, sys import smtplib from smtplib import SMTP_SSL from email.header import Header from email.mime.text import MIMEText mailInfo = { "from": "15735184252@163.com", "to": "qmeng1128@163.com", "hostname": "smtp.163.com", "username": "15735184252@163.com", "password": "xxxxxx", "mailsubject": "this is test", "mailtext": "hello, this is send mail test.", "mailencoding": "utf-8" } if __name__ == '__main__': smtp = SMTP_SSL(mailInfo["hostname"]) smtp.set_debuglevel(1) smtp.ehlo(mailInfo["hostname"]) smtp.login(mailInfo["username"],mailInfo["password"]) msg = MIMEText(mailInfo["mailtext"],"text",mailInfo["mailencoding"]) msg["Subject"] = Header(mailInfo["mailsubject"],mailInfo["mailencoding"]) msg["from"] = mailInfo["from"] msg["to"] = mailInfo["to"] smtp.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string()) smtp.quit()
======================== RESTART: D:/python/smtp2.py ======================== send: 'ehlo smtp.163.com\r\n' reply: b'250-mail\r\n' reply: b'250-PIPELINING\r\n' reply: b'250-AUTH LOGIN PLAIN\r\n' reply: b'250-AUTH=LOGIN PLAIN\r\n' reply: b'250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrKn9FbUCa0xDrUUUUj\r\n' reply: b'250-STARTTLS\r\n' reply: b'250 8BITMIME\r\n' reply: retcode (250); Msg: b'mail\nPIPELINING\nAUTH LOGIN PLAIN\nAUTH=LOGIN PLAIN\ncoremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrKn9FbUCa0xDrUUUUj\nSTARTTLS\n8BITMIME' send: 'AUTH PLAIN ADE1NzM1MTg0MjUyQDE2My5jb20ANzA0NzE2Mm0=\r\n' reply: b'235 Authentication successful\r\n' reply: retcode (235); Msg: b'Authentication successful' send: 'mail FROM:<15735184252@163.com>\r\n' reply: b'250 Mail OK\r\n' reply: retcode (250); Msg: b'Mail OK' send: 'rcpt TO:<qmeng1128@163.com>\r\n' reply: b'250 Mail OK\r\n' reply: retcode (250); Msg: b'Mail OK' send: 'data\r\n' reply: b'354 End data with <CR><LF>.<CR><LF>\r\n' reply: retcode (354); Msg: b'End data with <CR><LF>.<CR><LF>' data: (354, b'End data with <CR><LF>.<CR><LF>') send: b'Content-Type: text/text; charset="utf-8"\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: base64\r\nSubject: =?utf-8?q?this_is_test?=\r\nfrom: 15735184252@163.com\r\nto: qmeng1128@163.com\r\n\r\naGVsbG8sIHRoaXMgaXMgc2VuZCBtYWlsIHRlc3Qu\r\n.\r\n' reply: b'250 Mail OK queued as smtp3,DdGowAA3hZpnrYNarHNBAQ--.48S2 1518579056\r\n' reply: retcode (250); Msg: b'Mail OK queued as smtp3,DdGowAA3hZpnrYNarHNBAQ--.48S2 1518579056' data: (250, b'Mail OK queued as smtp3,DdGowAA3hZpnrYNarHNBAQ--.48S2 1518579056') send: 'quit\r\n' reply: b'221 Bye\r\n' reply: retcode (221); Msg: b'Bye'
parseaddr()是干什么的
>>> import email.utils >>> email.utils.parseaddr('tim_spac@126.com') ('', 'tim_spac@126.com') >>> email.utils.parseaddr('"Lao Wang" <tim_spac@126.com>') ('Lao Wang', 'tim_spac@126.com')
化简版,引用——www.liaoxuefeng.com
from email.mime.text import MIMEText msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') # 输入Email地址和口令: from_addr = input('From: ') password = input('Password: ') # 输入收件人地址: to_addr = input('To: ') # 输入SMTP服务器地址: smtp_server = input('SMTP server: ') import smtplib server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25 server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()
添加主题等信息
from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils imp 4000 ort parseaddr, formataddr import smtplib def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) from_addr = input('From: ') password = input('Password: ') to_addr = input('To: ') smtp_server = input('SMTP server: ') msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') msg['From'] = _format_addr('Python爱好者 <%s>' % from_addr) msg['To'] = _format_addr('管理员 <%s>' % to_addr) msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()
OR
如果没有中文的话,可以
mailInfo = { "from": "15735184252@163.com", "to": "qmeng1128@163.com", "hostname": "smtp.163.com", "username": "15735184252@163.com", "password": "......", "mailsubject": "this is test", "mailtext": "hello, this is send mail test.", "mailencoding": "utf-8" } msg = MIMEText(mailInfo["mailtext"],"text",mailInfo["mailencoding"]) msg["Subject"] = Header(mailInfo["mailsubject"],mailInfo["mailencoding"]) msg["from"] = mailInfo["from"] msg["to"] = mailInfo["to"] smtp.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string())
SMTP发送邮件
相关文章推荐
- Python3.6.3+opencv3.3.0学习笔记十四--基于分类器的动态人脸人体捕获
- 14. Python脚本学习笔记十四异常
- opencv_python学习笔记十四
- Flask学习总结笔记(8) -- 利用Flask-mail实现电子邮件发送功能
- Python框架之Django学习笔记(十四)
- python学习笔记(SMTP邮件发送:带附件)
- linux下python学习笔记(十四)之备份实例2
- Python学习笔记(十四)
- PDU学习笔记--包括长短信的发送
- Python 学习笔记 发送邮件
- 【Python学习笔记】-自动发送邮件脚本
- python学习笔记-------发送邮件(纯文本)
- python 系统学习笔记(十四)---排序
- Android(java)学习笔记176:BroadcastReceiver之 短信发送的广播接收者
- Python学习笔记18-发送邮件
- Python学习笔记 --- 利用STMP协议发送邮件
- python学习笔记(十四)标准库urllib
- Android(OPhone) 学习笔记 - 短信发送
- python学习通过smtp发送电子邮件
- Java Mail 学习笔记2——发送电子邮件