如何用python代码实现发送邮件
1、 首先我们必须要有邮箱账号,发件人的邮箱必须先设置开启SMTP协议。
使用邮箱的授权码。
2、 然后我们可以去邮箱设置里面看一下是否开启了SMTP协议。
在设置里面找到账户,然后往下找。
只要开启第一个POP3/SMTP服务就可以了,如果没有开启这个服务需要验证手机号开启一下,得到授权码。
3、 记住自己的授权码。
下面就是用代码实现发送邮件:
#! /usr/bin/env python
#-*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
host = 'smtp.163.com' # 设置发件服务器地址
port = 25 # 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式
sender = 'xxxxxx@163.com' # 设置发件邮箱,一定要自己注册的邮箱
pwd = '1qaz2wsx3edc' # 设置发件邮箱的密码,等会登陆会用到
receiver = 'xxxxxxxxxxxxxxx' # 设置邮件接收人,可以是扣扣邮箱
body = '<h1>Hi</h1><p>test</p>' # 设置邮件正文,这里是支持HTML的
f = open('report_test.html', 'rb') # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径
mail_body = f.read()
f.close()
msg = MIMEText(mail_body, 'html','utf-8') # 设置正文为符合邮件格式的HTML内容
msg['subject'] = 'Hello world' # 设置邮件标题
msg['from'] = sender # 设置发送人
msg['to'] = receiver # 设置接收人
try:
s = smtplib.SMTP(host, port) # 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
s.login(sender, '1qaz2wsx') # 登陆邮箱
s.sendmail(sender, receiver, msg.as_string()) # 发送邮件!
print ('Done')
except smtplib.SMTPException as e:
print (e)
希望你们能够借鉴,对你们能够有所帮助。