文章来源:GITHub:https://github.com/kootenpv/yagmail
- 安装
pip3 install yagmail
pip3 install keyring
- 简单例子
import yagmail yag = yagmail.SMTP(user = 'xxx@163.com', password = 'xxx', host = 'smtp.163.com') yag.send(to = 'xxx@163.com', subject = 'This is subject', contents = 'This is content')
注意:
-
如果你的邮箱没有开通IMAP/POP3/SMTP服务,就会提示如下错误信息:
smtplib.SMTPAuthenticationError: (550, b'User has no permission')
以163邮箱为例,解决方案在网页上登录自己邮箱,点击“设置->POP3/SMTP/IMAP”,勾选“POP3/STMP服务”和“IMAP/STMP服务”,弹窗会提示你设置授权码,点击“确定”,点击“开启”,通过验证后,即可开启。记住自己输入的授权码,在password中输入授权码,即可登录。 - 如果程序运行没出错,而目标邮箱没有收到邮件,请检查垃圾箱。
- 给多个邮箱发邮件
1
|
yag.send(to = [ 'aa@163.com' , 'bb@qq.com' , 'cc@gmail.com' ], 'subject' , 'contents' ) |
- 发送附件
1
2
|
yag.send(to = 'xxx@163.com' , subject = 'subject' , contents = [ 'hello' , 'C:\\Users\\Desktop\\test.txt' ]) |
注意:如果邮件发送之后被退回,那么程序不会显示任何错误信息,但是发件人的邮箱会有退信邮件。
- 更多细节
1
|
yagmail.register( 'mygmailusername' , 'mygmailpassword' ) |
以下是项目介绍:
yagmail -- Yet Another GMAIL/SMTP client
这里的目标是尽可能简单,无痛地发送电子邮件。
最后,您的代码将如下所示:
import yagmail yag = yagmail.SMTP() contents = ['This is the body, and here is just text http://somedomain/image.png', 'You can find an audio file attached.', '/local/path/song.mp3'] yag.send('to@someone.com', 'subject', contents)
或者简单的单行:
1
|
yagmail.SMTP( 'mygmailusername' ).send( 'to@someone.com' , 'subject' , 'This is the body' ) |
请注意,它将从您的密钥环安全地读取密码(如下所示)。如果您不想这样,您也可以使用以下内容进行初始化:
1
|
yag = yagmail.SMTP( 'mygmailusername' , 'mygmailpassword' ) |
但老实说,你想在你的脚本中写下你的密码吗?
同样,我使用我的用户名.yagmail
在我的主文件夹中命名的文件中。
目录
部分 | 说明 |
---|---|
安装 | 在此处查找有关如何安装yagmail的说明 |
用户名和密码 | 不再需要在脚本中填写用户名和密码 |
开始连接 | 开始吧 |
可用性 | 显示发送的一些使用模式 |
收件人 | 如何发送给多个人,给别名或发送给自己 |
神奇的内容 | 真的很容易发送文本,HTML,图像和附件 |
反馈 | 如何向我发送反馈 |
路线图(和优先事项) | 对 |
错误 | 处理发送电子邮件的人员的常见错误列表 |
安装
对于Python 2.x和Python 3.x分别:
1
2
|
pip install yagmail[all] pip3 install yagmail[all] |
如果您在安装密钥环时遇到问题,请尝试不安装,即pip install yagmail
。
作为旁注,yagmail
现在还可以用于从命令行发送电子邮件。
用户名和密码
钥匙圈引用:
The Python
keyring
lib provides a easy way to access the system keyring service from python. It can be used in any application that needs safe password storage.
你知道你想要它。通过打开Python解释器并运行来设置它:
1
2
|
import yagmail yagmail.register( 'mygmailusername' , 'mygmailpassword' ) |
事实上,它只是一个包装keyring.set_password('yagmail', 'mygmailusername', 'mygmailpassword')
。
如果未给出密码且密钥环中未找到用户,