写点什么

python 入门之发送邮件

作者:技能实验室
  • 2022-10-19
    河南
  • 本文字数:1366 字

    阅读完需:约 1 分钟

python 中发送邮件主要使用的库是


smtplib


安装命令也比较简单;


pip install smtplib


编码实现发送邮件:1、引入库:


import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr
复制代码


2、定义发送函数;接收主题和内容参数



def mail(subject,text): #self.my_sender='**@163.com' # 发件人邮箱账号 #self.my_pass = '****' # 发件人邮箱密码(当时申请smtp给的口令) my_sender='***@qq.com' # 发件人邮箱账号 my_pass = '*****' # 发件人邮箱密码(当时申请smtp给的口令) my_user='****@qq.com' # 收件人邮箱账号 try: msg=MIMEText(text,'HTML','utf-8') msg['From']=formataddr([my_sender,my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号 msg['To']=formataddr([my_user,my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号 msg['Subject']= subject # 邮件的主题,也可以说是标题 #server=smtplib.SMTP("smtp.163.com", 25) # 发件人邮箱中的SMTP服务器,端口是80 server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是80 server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码 server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件 server.quit()# 关闭连接 print('发送成功') except Exception:# 如果 try 中的语句没有执行 print('发送失败\t\n')
复制代码


属性说明参考注释既可;


3、调用函数;


mail(‘测试邮件’,'测试信息。。。。')




python 中发送接收邮件还有一个库


zmail


这个库相对于上面的更简单,不过只支持 python3


zmail 的优点有:


自动查找服务器地址及其端口自动使用合适的协议登录自动将python字典转换为MIME对象(带附件)自动添加邮件标题和本地名称,以避免服务器拒绝您的邮件轻松自定义邮件标题支持HTML作为邮件内容
复制代码


安装方式也比较简单:


pip install zmail


使用方式如下:


以下是源码,配置自己的参数后,可直接使用;使用比较简单,不做过多说明;


#! /env/bin/python3# -*- coding: UTF-8 -*-import zmail
mail_server = zmail.server(username='your mailbox@qq.com',password='your password')mail = mail_server.get_latest()
print("邮件主题:", mail['Subject'])print("邮件发送时间:", mail['Date'])print("发送者:", mail['From'])print("接收者:", mail['To'])print("内容:\n", mail['content_text'])
#获取指定id的邮件mail = mail_server.get_mail(30)zmail.show(mails=mail)#获取所有邮件mails = mail_server.get_mails(start_time='2022-04-24',end_time='2022-04-25')for mail in mails: print('-'*20) zmail.show(mail)
#发送邮件(带附件)file_path = 'D://temp/1.jpg'mail_info = { 'subject': '邮件主题', 'content_text': '测试发送邮件', 'attachments': file_path, }mail_server.send_mail('revice@qq.com',mail_info)
复制代码


发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-07-26 加入

还未添加个人简介

评论

发布
暂无评论
python入门之发送邮件_Python_技能实验室_InfoQ写作社区