您的位置:首页 > 编程语言 > Python开发

python发邮件

2017-06-23 23:33 218 查看
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

对方收到信之后是无法回复的,也就只能发信,不能收信

这种形式跟传统的连接邮件服务器发邮件的方式不同,不需要登录名和密码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: