python 邮件服务器地址 python smtp服务器
【Python】实现邮件发送功能
- SMTP协议
- 开启SMTP服务(以126邮箱示例)
- 发送一封纯文本邮件
- 发送一封带有附件的邮件
SMTP协议
SMTP(Simple Mail Transfer Protocol),简单邮件传送协议,是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
常见SMTP服务器
电子邮件提供商
SMTP服务器域名
google
网易163邮箱
网易126邮箱
腾讯
新浪
微软
smtp.live.com
开启SMTP服务(以126邮箱示例)
发送一封纯文本邮件
sendText.py
import smtplib from email.mime.text import MIMEText # 填写SMTP服务器的域名和端口号 SMTP_SERVER = "" SMTP_PORT = 25 def send_mail(user, pwd, to, subject, text): msg = MIMEText(text) msg['From'] = user msg['To'] = to msg['Subject'] = subject smtp_server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) print("连接SMTP服务器成功") try: print("开始加密会话") smtp_server.starttls() print("登录中...") smtp_server.login(user, pwd) print("开始发送邮件") smtp_server.sendmail(user, to, msg.as_string()) except Exception as err: print(f"发送失败,原因: {err}") else: print("发送成功") finally: smtp_server.quit() def main(): send_mail('你的邮箱', '授权码', '对方的邮箱', '纯文本邮件', '这是一封纯文本邮件') if __name__ == '__main__': main()注意:需要先在main函数里写入自己的邮箱、SMTP服务授权码以及对方的邮箱等信息
打开邮箱查看已发送邮件
发送一封带有附件的邮件
由于标准库smtplib添加各种附件比较麻烦冗杂,因此我们使用开源第三方库yagmail来发送带附件的邮件。首先安装yagmail
$ pip install yagmail或
$ pip3 install yagmail
sendAttach.py
import yagmail # SMTP服务器的域名和端口号 SMTP_HOST = '' SMTP_PORT = 465 # content存放文件路径,这里我们以上面出现的几张图为例,一次编号为1.png、2.png、3.png、4.png content = ['1.png', '2.png', '3.png', '4.png'] with yagmail.SMTP(user='你的邮箱', password='授权码', host=SMTP_HOST, port=SMTP_PORT) as yag: yag.send('对方的邮箱', '附件测试', '这是一封带有附件的邮件', content)注意:需要先填写好自己的邮箱、SMTP服务授权码以及对方的邮箱等信息
打开邮箱查看已发送邮件