在python中,我们可以用程序来实现向别人的邮箱自动发送一封邮件,甚至可以定时,如每天8点钟准时给某人发送一封邮件。今天,我们就来学习一下,如何向qq邮箱,网易邮箱等发送邮件。
一、获取邮箱的SMTP授权码。
1、要发送邮件,首先要获取对应邮箱的SMTP授权码,有了这个SMTP授权码才能发送邮件。
以qq邮箱为例:
1)首先登录主页,在主页上面,点击设置,点击账户。
2)在账户页面一直往下拉,找到如下图所示位置。
3) 点击POP3/SMTP服务中的开启按钮。点击开启后,会有一个手机验证,把需要发送的内容发送到指定号码,然后点击“我已发送”按钮。
4)之后会自动跳出一个框,里面就包含着SMTP授权码,把它复制下来,储存到一个地方方便以后调用
5)同理,你要给网易邮箱发送邮件的话,你也要登录网易邮箱,然后获取SMTP授权码。
二、编写发送代码
1、首先安装邮件发送的库smtplib
2、引入邮件发送的库
import smtplib#引入控制邮箱发送邮件的库
from email.mime.text import MIMEText
3、新建邮件对象,填入邮件的正文内容和发件人、收件人等信息。
#1.邮件正文内容
msg = MIMEText('测试邮件正文内容')
user ='你自己的qq号@qq.com' #发件人邮箱
pwd = '你自己的SMTP授权码' #邮箱的SMTP授权码
to = '你自己设置的收件人邮箱'#收件人,可以写多个收件人,用英文逗号隔开
#2.设置邮件主题、发件人、收件人
msg[ 'Subject' ] ='测试邮件主题!'#邮件的标题
msg[ 'From ' ] = user#设置发件人
msg['To'] = to#设置收件人
其中要在pwd变量中输入你第一步得到的SMTP授权码。然后要设置发件人,也就是你自己的邮箱,还有就是收件人的邮箱,收件人的邮箱可以是多个,多个之间用英文的逗号隔开即可。
4、调用qq邮箱服务,登录邮箱,发送邮件
#3.发送邮件
s = smtplib.SMTP_SSL ('smtp.qq.com', 465)#选择qq邮箱服务,默认端口为465
s.login(user, pwd)#登录qq邮箱
s.send_message(msg)#发送邮件
s.quit()#退出邮箱服务
print( ' Success! ')
其中smtp.qq.com为qq邮箱服务名,465为邮箱端口号,这对于qq邮箱是固定的,不可修改。
如果是网易邮箱,则使用smtp.163.com,端口号还是465
5、测试发送文件。发送成功!!!
三、发送HTML邮件
有的情况下,我们需要发送html格式的邮件,那么我们应该怎么做呢?
关键点就是新建邮件对象时,指定邮件的格式为html:
mail_msg = '''
<p>这个是一个常规段落</p>
p><a href="https : / /www.baidu.com">这是一个包含链接的段落</a></p>
'''
msg = MIMEText(mail_msg, 'html' , 'utf-8')
其中,mail_msg就是我们的html格式的邮件内容,然后把之前的msg = MIMEText('测试邮件正文内容')增加两个参数,一个参数指定格式为html,另一个参数指定编码方式为utf-8 。
其它代码和普通邮件发送的代码一样。