第一种方式
一:发送的邮件要设置授权码,通过邮箱邮箱授权码去验证,让邮件服务器帮我们去转发邮件到要接收的邮件,代码中的授权码,是需要登录126邮箱(我这里是以126邮件发送的,具体的以自己为准),设置授权码(如果之前没设置授权码)
二:发送邮件代码
# 1,导入需要的模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# 2.定义构建发送邮件内容等相关信息
msg = MIMEText('领导你好,你今天辛苦了', 'html', 'utf-8') # 发送内容
msg['From'] = formataddr(['陈先生', 'cchaof656@126.com']) # 发送邮件别名,邮件地址
msg['To'] = '767885930@qq.com' #接收邮箱地址
msg['Subject'] = '申请涨工资' # 发送邮件内容主题
# 3.发送邮件
server = smtplib.SMTP_SSL('smtp.126.com') # 指定发送邮箱的服务器地址
server.login('cchaof656@126.com', 'DDRCWMTRVJNKKKOE') # 邮箱登录验证:指定发送邮件的地址,授权码
server.sendmail('cchaof656@126.com', '767885930@qq.com', msg.as_string()) # 发送邮件:指定发送邮件,接收邮箱,内容
server.quit()
三:运行上面的代码,查看接收邮件地址,已经收到邮件了
第二种方式:
一:使用函数,这样更灵活多变,
# 1,导入需要的模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def send_email(*args):
# 定义构建发送邮件内容等相关信息
msg = MIMEText(args[0], 'html', 'utf-8') # 发送内容
msg['From'] = args[1] # 发送邮件地址
msg['To'] = args[4] # 接收邮箱地址
msg['Subject'] = args[-1] # 发送邮件内容主题
# 发送邮件
server = smtplib.SMTP_SSL(args[2]) # 指定发送邮箱的服务器地址
server.login(args[1], args[3]) # 邮箱登录验证:指定发送邮件的地址,授权码
server.sendmail(args[1], args[-2], msg.as_string()) # 发送邮件:指定发送邮件,接收邮箱,内容
server.quit()
mesg = input("请输入发送邮件内容:")
send_mailaddres = input("请输入发送邮箱地址:")
send_mailserver = input("请输入发送邮箱的邮件服务器地址:")
code = input("请输入发送邮箱地址的授权码:")
to_email = input("请输入要接收的邮箱地址:")
subject = input("请输入发送邮件的主题:")
# 调用发送邮件函数
mail_list = [mesg, send_mailaddres, send_mailserver, code, to_email, subject]
send_email(*mail_list)
二:查看接收邮件,已经收到126邮箱发送的邮件信息