python脚本实现发送邮件功能
来源:互联网 发布:pdf转换成word软件 编辑:程序博客网 时间:2024/05/29 02:59
#!/usr/bin/env python
from email import encoders
from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.message import MIMEMessage
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.utils import parseaddr, formataddr, formatdate
import smtplib
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_mail(smtp_server, from_addr, passwd, to_addr, subject, text='Hello, send by Python...', files=[]):
## --------------------------------------------------------------------------------------
# assert type(to_addr) == list
# assert type(files) == list
assert isinstance(to_addr, list)
assert isinstance(files, list)
## --------------------------------------------------------------------------------------
'''plain or html'''
msg = MIMEText(text, 'plain', 'utf-8')
# msg = MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'</body></html>', 'html', 'utf-8')
## --------------------------------------------------------------------------------------
'''plain and html'''
# msg = MIMEMultipart('alternative')
# msg.attach(MIMEText(text, 'plain', 'utf-8'))
# msg.attach(MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'</body></html>', 'html', 'utf-8')) # 附件不嵌入正文
# # msg.attach(MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'<p><img src="cid:0"></p>'+'</body></html>', 'html', 'utf-8')) # 附件嵌入正文
# for file in files:
# part = MIMEBase('application', 'octet-stream') # 'octet-stream': binary data
# part.set_payload(open(file, 'rb').read())
# encoders.encode_base64(part) # 用Base64编码
# part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
# part.add_header('Content-ID', '<0>')
# part.add_header('X-Attachment-Id', '0')
# msg.attach(part) # 添加到MIMEMultipart
msg['From'] = _format_addr('Me <%s>' % from_addr)
msg['To'] = _format_addr('You <%s>' % ','.join(to_addr))
msg['Subject'] = Header(subject, 'utf-8').encode()
msg['Date'] = formatdate(localtime=True)
## --------------------------------------------------------------------------------------
## 基于SSL安全连接,Gmail提供的SMTP服务必须要加密传输
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
# server.starttls() # 创建安全连接,对于'smtp.gmail.com',端口587
server.set_debuglevel(1) # 打印信息
server.login(from_addr, passwd)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
if __name__ == '__main__':
smtp_server = 'smtp.163.com'
from_addr = '×××××@163.com' #从该邮箱发出邮件
passwd = '××××××' #该密码不是你用客户端登陆邮箱时所用的密码,而是设置开启smpt时设置的密码
to_addr = ['××××××@qq.com'] #该邮箱为接收邮件的邮箱
subject = 'Hello...' #邮件主题名字
#with open('names.txt','r') as fp:
# text=fp.read() #我这里是把一个名字为names.txt的文件内容读出来作为邮件内容
text = "Hello, I'm dc,send by Python..."
files = []
# coding=utf-8
from email import encoders
from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.message import MIMEMessage
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.utils import parseaddr, formataddr, formatdate
import smtplib
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_mail(smtp_server, from_addr, passwd, to_addr, subject, text='Hello, send by Python...', files=[]):
## --------------------------------------------------------------------------------------
# assert type(to_addr) == list
# assert type(files) == list
assert isinstance(to_addr, list)
assert isinstance(files, list)
## --------------------------------------------------------------------------------------
'''plain or html'''
msg = MIMEText(text, 'plain', 'utf-8')
# msg = MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'</body></html>', 'html', 'utf-8')
## --------------------------------------------------------------------------------------
'''plain and html'''
# msg = MIMEMultipart('alternative')
# msg.attach(MIMEText(text, 'plain', 'utf-8'))
# msg.attach(MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'</body></html>', 'html', 'utf-8')) # 附件不嵌入正文
# # msg.attach(MIMEText('<html><body>'+'<h1>'+text+'</h1>'+'<p><img src="cid:0"></p>'+'</body></html>', 'html', 'utf-8')) # 附件嵌入正文
# for file in files:
# part = MIMEBase('application', 'octet-stream') # 'octet-stream': binary data
# part.set_payload(open(file, 'rb').read())
# encoders.encode_base64(part) # 用Base64编码
# part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
# part.add_header('Content-ID', '<0>')
# part.add_header('X-Attachment-Id', '0')
# msg.attach(part) # 添加到MIMEMultipart
msg['From'] = _format_addr('Me <%s>' % from_addr)
msg['To'] = _format_addr('You <%s>' % ','.join(to_addr))
msg['Subject'] = Header(subject, 'utf-8').encode()
msg['Date'] = formatdate(localtime=True)
## --------------------------------------------------------------------------------------
## 基于SSL安全连接,Gmail提供的SMTP服务必须要加密传输
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
# server.starttls() # 创建安全连接,对于'smtp.gmail.com',端口587
server.set_debuglevel(1) # 打印信息
server.login(from_addr, passwd)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
if __name__ == '__main__':
smtp_server = 'smtp.163.com'
from_addr = '×××××@163.com' #从该邮箱发出邮件
passwd = '××××××' #该密码不是你用客户端登陆邮箱时所用的密码,而是设置开启smpt时设置的密码
to_addr = ['××××××@qq.com'] #该邮箱为接收邮件的邮箱
subject = 'Hello...' #邮件主题名字
#with open('names.txt','r') as fp:
# text=fp.read() #我这里是把一个名字为names.txt的文件内容读出来作为邮件内容
text = "Hello, I'm dc,send by Python..."
files = []
send_mail(smtp_server, from_addr, passwd, to_addr, subject, text, files)
把以上程序中发送邮箱、密码、接受邮箱改为自己的(记住一定要进入自己邮箱开启smtp服务),改好后把程序复制到一个.py文件中直接执行python 文件名即可。
0 0
- python脚本实现发送邮件功能
- python实现邮件发送功能
- python邮件发送脚本
- python脚本发送邮件
- Python 发送邮件脚本
- python脚本发送邮件
- 发送邮件的python脚本
- 使用python脚本发送邮件
- Python 批量发送邮件脚本
- python脚本发送普通邮件
- Python--脚本自动发送邮件
- 系统访问日志统计及邮件发送脚本--python实现
- python 实现发送邮件
- Python实现邮件发送
- python实现邮件发送
- python实现发送邮件
- Python实现发送邮件
- Python实现邮件发送
- 判断字符串是否由纯数字组成
- (UVA 11995) I Can Guess The Data Structure! --抽象数据结构判断
- 杭电1551Cable master
- cocos creator 如何使正在播放的动画不重置
- (多校第四场1001)HDU5763 Another Meaning (DP、KMP)
- python脚本实现发送邮件功能
- hdu 3416(最短路+最大流)
- MySql中出现 Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for
- Java:实例
- IOS Dev Intro - UIView and CALayer
- Android百度地图之定位
- 常用的Oracle SQL语句
- 程序最小化到托盘 TTrayIcon
- C语言异或运算