python安装新的库,比如smtplib ,安装之后python才能正常使用”import smtplib”
sudo pip search smtplib
sudo pip install PyEmail
python发邮件代码
#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务,目前支持发邮件的只有smtp
#pop和IMAP是用来收邮件的
mail_host="smtp.XXX.com" #设置smtp服务器
mail_user="XXXX" #用户名
mail_pass="XXXXXX" #口令
sender = mail_user #应该是跟mail_user一样,否则发送失败
receivers = ['573270407@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
"""
r=open("1.html") #连接一个文件
mail_msg =r.read() #读取文件的内容
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')#发件人名字
message['To'] = Header("测试", 'utf-8')#收件人名字
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8') #邮件标题
try:#错误验证
smtpObj = smtplib.SMTP() #开启smtp服务
smtpObj.connect(mail_host, 25) #连接smtp服务器, 25 为 SMTP 端口号
smtpObj.login(mail_user,mail_pass) #邮箱登录
smtpObj.sendmail(sender, receivers, message.as_string()) #发送地址,接收地址,消息内容
print ("邮件发送成功")
except smtplib.SMTPException:
print ("Error: 无法发送邮件")
改进
#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host="smtp.mxhichina.com" #设置服务器
mail_user="df@df315.top" #用户名
mail_pass="Iwillnevertellyoupassword" #口令
sender = mail_user #应该是跟mail_user一样,否则发送失败
receivers = ['573270407@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
""" #html代码,python读取外部文件的中文会报错,算了,就写在这儿吧!
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = Header("Df", 'utf-8')#发件人名字
message['To'] = Header("Dfer", 'utf-8')#收件人名字
subject = '你好,世界'
message['Subject'] = Header(subject, 'utf-8') #邮件标题
try:#错误验证
smtpObj = smtplib.SMTP() #开启smtp服务
smtpObj.connect(mail_host, 25) #连接smtp服务器, 25 为 SMTP 端口号
smtpObj.login(mail_user,mail_pass) #邮箱登录
smtpObj.sendmail(sender, receivers, message.as_string()) #发送地址,接收地址,消息内容
print ("邮件发送成功")
except smtplib.SMTPException:
print ("Error: 无法发送邮件")
邮件服务器设置
阿里巴巴企业云邮箱各个服务器地址及端口信息如下:
收件服务器地址:
POP 服务器地址:pop3.mxhichina.com 端口110,SSL 加密端口995
或
IMAP 服务器地址:imap.mxhichina.com 端口143,SSL 加密端口993
发件服务器地址:
SMTP 服务器地址:smtp.mxhichina.com 端口25, SSL 加密端口465
值得一提的是
OSX有个mail命令可以直接发邮件,脱离邮件服务器的限制
格式如下:
mail -s df 573270407@qq.com < df
发出去的地址是:
df@DfdeMacBook-Air.local
对方收到信之后是无法回复的,也就只能发信,不能收信
这种形式跟传统的连接邮件服务器发邮件的方式不同,不需要登录名和密码