Maison  >  Article  >  développement back-end  >  Exemple de production Python d'envoi d'e-mails

Exemple de production Python d'envoi d'e-mails

巴扎黑
巴扎黑original
2017-08-13 14:56:491281parcourir

Cet article présente principalement en détail la fonction d'envoi d'e-mails en python. Les modules utilisés sont smtplib et MIMEText, qui ont une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Les exemples de cet article sont We. J'ai partagé le code spécifique à Python pour implémenter la fonction d'envoi d'e-mails pour votre référence. Le contenu spécifique est le suivant

Dépendances :

Le code Python implémente la fonction. d'envoi d'emails. Le module utilisé est smtplib , MIMEText, vous devez importer le package avant d'implémenter le code :


import smtplib
from email.mime.text import MIMEText

Utilisez 163 email pour envoyer des emails. L'implémentation du code est la suivante :


import smtplib
from email.mime.text import MIMEText
'''
发送邮件函数,默认使用163smtp
:param mail_host: 邮箱服务器,16邮箱host: smtp.163.com
:param port: 端口号,163邮箱的默认端口是 25
:param username: 邮箱账号 xx@163.com
:param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码)
:param recv: 邮箱接收人地址,多个账号以逗号隔开
:param title: 邮件标题
:param content: 邮件内容
:return:
'''

def send_mail(username, passwd, recv, title, content, mail_host='smtp.163.com', port=25):
  msg = MIMEText(content)  # 邮件内容
  msg['Subject'] = title   # 邮件主题
  msg['From'] = username   # 发送者账号
  msg['To'] = recv      # 接收者账号列表
  smtp = smtplib.SMTP(mail_host, port=port)   # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
  smtp.login(username, passwd)          # 登录发送者的邮箱账号,密码
  # 参数分别是 发送者,接收者,第三个是把上面的发送邮件的 内容变成字符串
  smtp.sendmail(username, recv, msg.as_string())
  smtp.quit() # 发送完毕后退出smtp
  print('email send success.')

if __name__ == '__main__':
  email_user = 'xxxx@163.com' # 发送者账号
  email_pwd = 'xxxxx' # 发送者密码,授权码
  maillist = 'xxxx@qq.com'
  title = '测试邮件标题'
  content = '这里是邮件内容'
  send_mail(email_user, email_pwd, maillist, title, content)

La méthode pour obtenir le code d'autorisation pour la boîte aux lettres 163 est la suivante :

1. boîte aux lettres, cliquez sur Paramètres-POP3/SMTP/IMAP, comme suit :

2. Activez le service SMTP et interrogez l'adresse de l'hôte SMTP :

3. Cliquez sur le mot de passe d'autorisation du client pour réinitialiser le code d'autorisation :

Utilisez QQ Mail pour envoyer des e-mails.


import smtplib
from email.mime.text import MIMEText
'''
发送邮件函数,默认使用163smtp
:param mail_host: 邮箱服务器,qq邮箱host: smtp.qq.com
:param port: 端口号,qq邮箱的默认端口是: 456
:param username: 邮箱账号 xx@163.com
:param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码)
:param recv: 邮箱接收人地址,多个账号以逗号隔开
:param title: 邮件标题
:param content: 邮件内容
:return:
'''
#qq邮箱发送邮件
def send_mail(username, passwd, recv, title, content, mail_host='smtp.qq.com', port=456):
  msg = MIMEText(content)  # 邮件内容
  msg['Subject'] = title   # 邮件主题
  msg['From'] = username   # 发送者账号
  msg['To'] = recv      # 接收者账号列表
  smtp = smtplib.SMTP_SSL(mail_host, port=port)   # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
  smtp.login(username, passwd)          # 登录发送者的邮箱账号,密码
  # 参数分别是 发送者,接收者,第三个是把上面的发送邮件的 内容变成字符串
  smtp.sendmail(username, recv, msg.as_string())
  smtp.quit() # 发送完毕后退出smtp
  print('email send success.')

if __name__ == '__main__':
  email_user = 'xxx@qq.com' # 发送者账号
  email_pwd = 'WOSHINIGE123' # 发送者密码,授权码
  maillist = 'xxxx@qq.com'
  title = '测试邮件标题'
  content = '这里是邮件内容'
  send_mail(email_user, email_pwd, maillist, title, content)
Destinataires multiples avec pièces jointes :


# import smtplib
# from email.mime.text import MIMEText
# '''
# 发送邮件函数,默认使用163smtp
# :param mail_host: 邮箱服务器,qq邮箱host: smtp.163.com
# :param port: 端口号,qq邮箱的默认端口是: 25
# :param username: 邮箱账号 xx@163.com
# :param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码)
# :param recv: 邮箱接收人地址,多个账号以逗号隔开
# :param title: 邮件标题
# :param content: 邮件内容
# :return:
# '''
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

#邮箱服务器地址
email_host = 'smtp.163.com'
#发送者
email_user = 'xxxx@163.com'
#授权码
email_pwd = 'WOSHINIGE123'
#多个收件人,使用分号分隔
maillist ='xxxx@qq.com;aaaa@qq.com'
#对多个收件人进行分割,以;为标准,返回结果是list['xxxx@qq.com','aaaa@qq.com']
email_info = maillist.split(';')
#构造一个发附件的邮件内容对象
new_msg = MIMEMultipart()
#邮件正文内容
new_msg.attach(MIMEText('test email.....'))
#邮件主题
new_msg['Subject'] = 'test email'
#邮件发送者
new_msg['From'] = email_user
#邮件接收者,多个收件人的账号使用,连接,传入类型是str
new_msg['To'] = ','.join(email_info)
#打开a.txt读取文本内容
att = MIMEText(open('a.txt').read())
att["Content-Type"] = 'application/octet-stream'
# 发送附件就得这么写,固定格式,filename指定附件的名字
att["Content-Disposition"] = 'attachment; filename="haha.txt"'
new_msg.attach(att)
# 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
smtp = smtplib.SMTP(email_host, port=25)
# 发送者的邮箱账号,密码,先登录
smtp.login(email_user, email_pwd)
smtp.sendmail(email_user, email_info, new_msg.as_string())
smtp.quit()
print('email send success.')
Utiliser des points-virgules entre les comptes lorsqu'il y a plusieurs destinataires ; diviser et exécuter smtp.sendmail (le type de plusieurs destinataires transmis est list); new_msg['TO'] = recv, le type reçu est str

Utilisez la classe pour envoyer des e-mails, vous pouvez en envoyer plusieurs personnes ou envoyer des pièces jointes :


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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn