python发邮件

10 篇文章 0 订阅

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
对方收到信之后是无法回复的,也就只能发信,不能收信
这种形式跟传统的连接邮件服务器发邮件的方式不同,不需要登录名和密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值