Maison  >  Article  >  développement back-end  >  Comment envoyer des e-mails avec Python

Comment envoyer des e-mails avec Python

WBOY
WBOYavant
2023-04-20 09:16:064234parcourir

1. Préparez le compte de messagerie utilisé pour envoyer des e-mails

Préparez le compte de messagerie et le code d'autorisation de connexion par e-mail. Les méthodes d'obtention des codes d'autorisation sont similaires pour différents types de boîtes aux lettres. Nous prenons ici la boîte aux lettres QQ comme exemple pour démontrer les étapes permettant d'obtenir les codes d'autorisation :

Étape 1 : Connectez-vous à la boîte aux lettres QQ à l'aide de la page Web et recherchez l'aide. centre

Comment envoyer des e-mails avec Python

Étape 2 : Dans l'aide Sélectionnez la deuxième question dans « Paramètres client » au centre :

Comment envoyer des e-mails avec Python

puis suivez les exigences correspondantes pour obtenir le code d'autorisation et enregistrez-le.

2. Étapes de base pour l'envoi d'e-mails

Les étapes pour envoyer des e-mails via le code sont fondamentalement les mêmes que celles pour l'envoi manuel d'e-mails : Connectez-vous à votre boîte aux lettres -> Préparer le contenu de l'e-mail ->

2.1 Connectez-vous à votre messagerie
import smtplib
1. 连接邮箱服务器
连接对象 = smtplib.SMTP_SSL(服务器地址, 邮箱服务端口)
- 服务器地址:smtp.163.com(163邮箱)、smtp.qq.com(qq邮箱) - 邮箱服务端口:465或者25
2. 登录邮箱 连接对象.login(邮箱账号, 授权码)
2.2 Préparer les données

Les données font référence au contenu qui doit être envoyé. La construction du contenu d'e-mail nécessite une autre bibliothèque, email, qui peut être utilisée pour créer des sujets d'e-mail et diverses formes de contenu d'e-mail (y compris le contenu texte, le contenu d'image, le contenu html, les pièces jointes), etc. Parlons brièvement des sujets d'e-mail et du contenu texte. et d'autres formes de contenu seront expliquées en détail plus tard dans la section relative au contenu des e-mails.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
1. 创建邮件对象
邮件对象 = MIMEMultipart()
2. 设置邮件主题
主题对象 = Header(邮件标题, 编码方式).encode()
邮件对象['Subject'] = 主题对象
3.设置邮件发送者
邮件对象['From'] = '用户名 '
4.设置邮件接受者
邮件对象['To'] = '收件⼈1;收件⼈2;收件人3...'
5. 添加文字内容
文字内容对象 = MIMEText(内容, 类型, 编码方式)
- 内容:就是文字字符串
- 类型:plain(简单的⽂字内容)、html(超文本) 邮件对象.attach(文字对象)
2.3 Envoi d'e-mails

3. Exemples d'envoi de différents types d'e-mails

连接对象.sendmail(发件⼈, 收件人, 邮件对象.as_string())
连接对象.quit()
3.1 E-mails à contenu texte ordinaire

Le corps de l'e-mail de ce type d'e-mail ne contient que des informations textuelles ordinaires, pas d'hypertexte, pas d'images, et pas de pièces jointes :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 1. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.163.com', 465)
# 2. 登录邮箱
con.login('XXXX@163.com', 'XXXXX')
# 2. 准备数据
# 创建邮件对象
msg = MIMEMultipart()
# 设置邮件主题
subject = Header('找回密码', 'utf-8').encode() msg['Subject'] = subject
# 设置邮件发送者
msg['From'] = 'XXXX@163.com'
# 设置邮件接受者
msg['To'] = '726550822@qq.com'
# 添加⽂文字内容
text = MIMEText('忘记密码需要找回密码', 'plain', 'utf-8')
msg.attach(text)
# 3.发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Comment envoyer des e-mails avec Python

3.2 Contenu du fichier hypertexte

Une sorte d'e-mail avec un texte plus riche et plus intéressant Les e-mails que nous recevons des principales plateformes de la vie sont tous ce type d'e-mails. Le format de code de base est le suivant. suit :

from email.mime.text import MIMEText
html⽂本对象 = MIMEText(html内容字符串, 'html', 编码方式) 邮件对象.attach(html⽂本对象)

Code spécifique :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('找回密码', 'utf-8').encode()
msg['Subject'] = subject
msg['From'] = 'xxxx@163.com'
msg['To'] = '726550822@qq.com'
# 添加html内容
content = """我是正⽂中的标题邮件正文描述性文字1邮件正⽂描述性文字2 百度图片百度⼀下
"""
html = MIMEText(content, 'html', 'utf-8')
msg.attach(html)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Comment envoyer des e-mails avec Python

3.3 Envoyer des pièces jointes

En plus du contenu principal de l'e-mail, il est parfois nécessaire d'envoyer différents fichiers séparément sous forme de pièces jointes. Le code de base pour l'envoi des pièces jointes est le suivant. suit :

from email.mime.text import MIMEText
⽂文件对象 = MIMEText(⽂件二进制数据, 'base64', 编码⽅式)
文件对象["Content-Disposition"] = 'attachment; filename="⽂件名"'
邮件对象.attach(⽂件对象)

Code spécifique :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
from email.mime.message import MIMEMessage from copy import deepcopy
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('⽂文件附件发送', 'utf-8').encode() msg['Subject'] = subject
msg['From'] = 'xxxx@163.com'
msg['To'] = '726550822@qq.com'
# 添加⽂文件附件
file1 = MIMEText(open('files/test.txt', 'rb').read(), 'base64', 'utf-8')
file1["Content-Disposition"] = 'attachment; filename="test.txt"'
msg.attach(file1)
file2 = MIMEText(open('files/pyecharts的使⽤用.pdf', 'rb').read(), 'base64', 'utf-8')
file2["Content-Disposition"] = 'attachment; filename="test.pdf"'
msg.attach(file2)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()

Comment envoyer des e-mails avec Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer