python——发送邮件
最近在学习python,之前的学习总是不做笔记,总感觉学了就忘,打过的代码一段时间不用就给忘了,写文章来记录一下。为了保护隐私,里面个人内容是编造的。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
my_sender = '120842@qq.com' # 发件人邮箱账号
my_pass = 'ebqucu' # 发件人邮箱密码(授权码作为密码)
my_user = '2020@163.com' # 收件人邮箱账号,自己发送给自己
def mail():
ret = True
try:
msg = MIMEText('hello world', 'plain', 'utf-8')#正文内容,内容可更改
msg['From'] = formataddr(["诗", my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To'] = formataddr(["python Q4", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = "主题" # 邮件的主题(标题)
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25,QQ邮箱的smtp.qq.com,ssl 端口:465。
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
注意事项
- 若邮件发送失败,一检查邮箱是否正确;二密码是否为授权码;三端口设置的问题。
- 授权码的获得,一般在设置>>账户>>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务.
或者百度就有。
参考
https://www.runoob.com/python3/python3-smtp.html