请注意,默认情况下,所有电子邮件地址都使用soft_email_validation==True
(默认)进行保守验证。
的oauth2
使用Oauth2进行身份验证甚至更安全,因为您可以撤消令牌的权限。
这是oauth2代码严重依赖的最佳来源之一。
代码:
1
2
|
yag = SMTP( "user@gmail.com" , oauth2_file = "~/oauth2_creds.json" ) yag.send(subject = "Great!" ) |
当无法找到文件时,它会提示a google_client_id
和a google_client_secret
。可以在前一个链接之后获得这些变量。
提供后,终端中将显示一个链接,您应该遵循该链接以获取google_refresh_token
。再次粘贴,你就安装好了!
请注意,获取该文件的人可以发送电子邮件,但没有其他内容。一旦发现,您可以直接禁用令牌。
神奇 contents
这个contents
论点将被巧妙地猜到。它可以传递一个字符串(将变成一个列表); 或者一份清单。对于列表中的每个对象:
- 如果它是字典,它将假设键是内容,值是别名(仅适用于当前的图像!),例如{'/ path / to / image.png':'MyPicture'}
- 它将尝试查看内容(字符串)是否可以在本地读取,例如'/path/to/image.png'
-
如果不可能,它将检查字符串是否有效html例如
<h1>This is a big title</h1>
- 如果没有,那一定是文字。例如'Hi Dorika!'
请注意,本地文件可以是html(内联); 其他一切都会附上。
本地文件需要具有推断其内容类型的扩展名。
截至0.4.94版本,raw
并且inline
已被添加。
-
raw
确保字符串不会收到任何“魔法”(内联,html,附加) -
inline
将使图像出现在文本中。
反馈
我将尽力在24小时内回应Github .....
请给我一些反馈意见SMTP().feedback('Great job!')
:-)
路线图(和优先事项)
-
增加了Image的可能性 -
可选的SMTP参数应该使用** kwargs到我的SMTP -
CC / BCC(高) -
自定义名称(高) -
允许发送返回预览而不是实际发送 -
只需在“内容”中使用附件,智能猜测(高,复杂) -
列表中的附件(内容),以便它们实际定义订单(中) -
使用lxml查看它是否可以解析html(低) -
增加测试(高) -
允许缓存内容(低) -
其他类型(低)(例如,mp3也可以,如果有什么不起作用,请告诉我) -
可能是内容类型/默认类型的命名问题 -
选择内联或不以某种方式(高) -
使lxml模块可选魔术(高) -
为复杂内容提供自动回退(中)(应该管用) -
yagmail
安装时作为CLI上的命令 -
feedback
在SMTP上添加功能可以直接向我发送反馈:-) -
添加了验证emailaddresses的选项... -
但是,我对错误电子邮件的错误处理/登录不满意 -
记录计数和邮件功能(非常低) -
向异常类添加文档(低) -
添加raw
和'内联``` -
的oauth2 - ~~ Travis CI整合~~
- ~~为所有功能添加文档(高,中途)~~
- 准备官方1.0
- 再次浏览文档(中)
-
允许
.yagmail
文件包含更多参数(中) - 添加缩小图像的选项(低)
错误
-
确保您有密钥环条目(请参阅“ 不再使用密码和用户名”一节),或使用getpass进行注册。我不鼓励在脚本中使用用户名/密码。
-
smtplib.SMTPException: SMTP AUTH extension not supported by server
-
SMTPAuthenticationError: Application-specific password required
-
YagAddressError:这意味着地址以无效格式给出。请注意,
From
可以是字符串,也可以是键为a的字典,email
值为alias
{' sample@gmail.com ':'Sam'}。在'to'的情况下,它可以是字符串(email
),电子邮件列表(没有别名的电子邮件地址)或字典,其中键是电子邮件地址,值表示别名。 -
YagInvalidEmailAddress:请注意,这只会过滤掉emailaddresses中的语法错误。如果一个人认为它可能是有效的电子邮件,它很可能会通过。但是,它仍然很可能是任何人都没有声称实际的电子邮件地址(因此这个功能无法取消验证)。
-
点击以启用外部使用的电子邮件https://www.google.com/settings/security/lesssecureapps
-
确保您有可用的互联网连接
-
如果您
ImportError
尝试安装sudo
,请参阅问题#13