用python实现邮件收发

项目环境

语言:Python
编辑器:Pycharm
库:smtplib、email

使用python登录邮箱

python登录邮箱需要定义邮件的传输协议,一般的邮件传输协议是 SMTP,QQ 邮箱是 smtp.qq.com,端口默认为 25。用 login 方法登录邮箱,第一个参数是登录账号,第二个参数不是邮箱的登录密码,而是邮箱的授权码,在邮箱的设置中查看,以下是QQ 邮箱查看方法,其他邮箱查看方法类似。

QQ邮箱授权码查看、复制
用python实现邮件收发_第1张图片登录成功后再用 sendmail 方法发送邮件,发送完后退出邮件。
源代码:`

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.header import Header
my_sender = '[email protected]'     # 发件人邮箱账号
my_user = '[email protected]'       # 收件人邮箱账号

def sendMail(mail_title, mail_content):
    try:
        '''发送邮件'''
        msg = MIMEText(mail_content, "plain", 'utf-8')        # 把发送文本用 MIMEText 方法处理成中文编码,发送邮件内容
        msg["Subject"] = Header(mail_title, 'utf-8')            # 发送邮件主题/标题
        msg["From"] = formataddr(['xxx', my_sender])             # 邮件发送方
        msg["To"] = formataddr(['xxx', my_user])             # 邮件接收方
        s = smtplib.SMTP("smtp.qq.com", 25)        # 邮箱的传输协议,端口默认25
        s.login(my_sender, 'xxx授权码xxx')     # 登录邮箱,这里的第二个参数为qq邮箱授权码,不要填你的登录密码
        s.sendmail(my_sender, [my_user, ], msg.as_string())  # 发送方,接收方,发送消息
        s.quit()               # 退出邮箱
        print("邮件发送成功!")
    except Exception:
        print("邮件发送失败~~")
        
if __name__ == '__main__':
    mail_title = '来自Python的邮件'
    mail_content = '我就是试试程序'
    sendMail(mail_title, mail_content)

`

你可能感兴趣的:(python)