python发送邮件

直接先上菜鸟的代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
 
sender = 'from@runoob.com'
receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', '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('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error: 无法发送邮件"

解释
这上面已经有了各个参数的描述,主要说一下SMTP,这里说的不是很详细。

smtpObj = smtplib.SMTP('localhost')

这里使用SMTP协议发送邮件,括号里面为对应的地址,下面为常用邮箱的地址

163.com:

POP3服务器地址:pop.163.com(端口:110)

SMTP服务器地址:smtp.163.com(端口:25)

126邮箱:

POP3服务器地址:pop.126.com(端口:110)

SMTP服务器地址:smtp.126.com(端口:25)

139邮箱:

POP3服务器地址:POP.139.com(端口:110)

SMTP服务器地址:SMTP.139.com(端口:25)

QQ邮箱:

POP3服务器地址:pop.qq.com(端口:110)

SMTP服务器地址:smtp.qq.com (端口:25)

QQ企业邮箱 :

POP3服务器地址:pop.exmail.qq.com (SSL启用 端口:995)

SMTP服务器地址:smtp.exmail.qq.com(SSL启用 端口:587/465)

gmail(google.com) :

POP3服务器地址:pop.gmail.com(SSL启用 端口:995)

SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)

Foxmail:

POP3服务器地址:POP.foxmail.com(端口:110)

SMTP服务器地址:SMTP.foxmail.com(端口:25)

sina.com:

POP3服务器地址:pop3.sina.com.cn(端口:110)

SMTP服务器地址:smtp.sina.com.cn(端口:25)

sinaVIP:

POP3服务器:pop3.vip.sina.com (端口:110)

SMTP服务器:smtp.vip.sina.com (端口:25)

sohu.com:

POP3服务器地址:pop3.sohu.com(端口:110)

SMTP服务器地址:smtp.sohu.com(端口:25)

yahoo.com:

POP3服务器地址:pop.mail.yahoo.com

SMTP服务器地址:smtp.mail.yahoo.com

yahoo.com.cn:

POP3服务器地址:pop.mail.yahoo.com.cn(端口:995)

SMTP服务器地址:smtp.mail.yahoo.com.cn(端口:587 )

HotMail :

POP3服务器地址:pop3.live.com (端口:995)

SMTP服务器地址:smtp.live.com (端口:587)

263.net:

POP3服务器地址:pop3.263.net(端口:110)

SMTP服务器地址:smtp.263.net(端口:25)

263.net.cn:

POP3服务器地址:pop.263.net.cn(端口:110)

SMTP服务器地址:smtp.263.net.cn(端口:25)

x263.net:

POP3服务器地址:pop.x263.net(端口:110)

SMTP服务器地址:smtp.x263.net(端口:25)

21cn.com:

POP3服务器地址:pop.21cn.com(端口:110)

SMTP服务器地址:smtp.21cn.com(端口:25)

china.com:

POP3服务器地址:pop.china.com(端口:110)

SMTP服务器地址:smtp.china.com(端口:25)

tom.com:

POP3服务器地址:pop.tom.com(端口:110)

SMTP服务器地址:smtp.tom.com(端口:25)

etang.com:

POP3服务器地址:pop.etang.com

SMTP服务器地址:smtp.etang.com

例子

smtpObj = smtplib.SMTP('smtp.qq.com:25')

还需要增加一个登录邮箱的设置

smtpObj.login(mail_user, mail_pass)

mail_user:发送的邮箱***@qq.com
mail_pass:授权码,注意,这里是授权码,不是密码

授权码获取

以qq邮箱为例
点击设置–》账户
下滑,可以看到
在这里插入图片描述
这里第二个就是需要开启的,这里没开启的话,点击按步骤开启,然后点击下面的生成授权码,就可以获取到了。

完整代码如下

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
 
mail_user= 'from@runoob.com'
receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', '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.qq.com:25')
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(mail_user, receivers, message.as_string())
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error: 无法发送邮件"

在阿里云服务器上的问题

在阿里云的centos中运行代码会直接报错,这是因为阿里云禁用了25端口

阿里云官方文档这样写的
在这里插入图片描述
经过测试,80,465端口也都不好使,在网上查了一下,应该是改成587了,实测可以的。如果后续不好使,或者再次更新,欢迎大家评论告知更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值