使用python发送邮件的两种方式

简介: python中发送邮件主要使用的库是> smtplib安装命令也比较简单;> pip install smtplib编码实现发送邮件:1、引入库:```pythonimport smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr```

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

>  smtplib


安装命令也比较简单;

> pip install smtplib


编码实现发送邮件:

1、引入库:

```

import smtplib

from email.mime.text import MIMEText

from 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

自动查找服务器地址及其端口

自动使用合适的协议登录

自动将python字典转换为MIME对象(带附件)

自动添加邮件标题和本地名称,以避免服务器拒绝您的邮件

轻松自定义邮件标题

支持HTML作为邮件内容

```

安装方式也比较简单:

> pip install zmail


使用方式如下:

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



```python

#! /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月前
|
存储 搜索推荐 数据安全/隐私保护
python实战讲解之使用Python批量发送个性化邮件
python实战讲解之使用Python批量发送个性化邮件
|
5月前
|
Python
python实现发送邮件demo
python实现发送邮件demo
38 1
|
5月前
|
Unix 数据安全/隐私保护 Python
python自动生成Excel表格数据并发送邮件案例
python自动生成Excel表格数据并发送邮件案例
|
6月前
|
数据安全/隐私保护 Python
python 发送邮件demo
python 发送邮件demo
|
1天前
|
监控 Python
Python监控主机是否存活,并发报警邮件
Python监控主机是否存活,并发报警邮件
|
5天前
|
数据安全/隐私保护 Python
Python Flask-Mail实现邮件发送
Python Flask-Mail实现邮件发送
|
2月前
|
存储 安全 计算机视觉
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
|
3月前
|
存储 Shell API
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
57 0
|
3月前
|
移动开发 Python HTML5
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
47 0
|
8月前
|
Python
Python发送邮件脚本
Python发送邮件脚本
37 0

热门文章

最新文章