美文网首页
如何使用python快速实现发邮件之yagmail?

如何使用python快速实现发邮件之yagmail?

作者: Yznx_请叫我小哥 | 来源:发表于2019-03-11 10:52 被阅读0次
图片来自UNsplash

写在前面

自己在学习python的过程中有时候想要写一个爬虫来获取一些信息为自己带来方便,比如在爬取12306或者淘宝某一件商品降价的时候呢为了最快得到消息可以怎么做呢?就可以在脚本代码里面加入一下自动发送邮件的代码。这一篇文章写的是yagmail这个第三方库,比python自带的库更好掌握和使用。

前置条件

安装yagmail

pip install yagmail

yagmail的git地址

开始使用

引入yagmail

import yagmail

使用

  1. 我们初始化一个smtp对象,如下:
myyag = yagmail.SMTP("your mail", "your mail stmppkey", host="smtp.qq.com", port='25')

解释一下:这是最简单的一种初始化模式,如果你不想自己的密码被暴露出来可以通过官方文档中提示那样使用

    
yagmail.register('mygmailusername', 'mygmailpassword')

来将密码保存好,然后这个默认使用的时候Gmail的SMTP服务器,大家如果使用其他的邮箱就要像上面一样声明host和port。关于常见邮箱的host和port我会放在最后。

  1. 当你拿到上面一个这样的对象时候你就可以开始发送邮件呢,但是呢,邮件是需要内容的,内容可以是文本也可以是附件形式还可以是HTML文本。这个时候已经可以开始使用
s = "hi, this is test"
myyag.send(to="want to mail", subject="test", contents=s)

来发送邮件,这里的to可以是一个字符串亦可以是一个列表和字典,当然还有一个就是不填写那就是默认发给自己,content里面呢可以像我这样是一个文本,亦可以指定文件的路径,最好是放在项目路径下方便读取,当然也可以是一个list,同时发送多个文件。当然你也可以指出邮件的主题,通过subject="",指出就好。

  1. 我们再来好好看一下send方法的具体定义:
def send(self, to=None, subject=None, contents=None, attachments=None, cc=None, bcc=None,preview_only=False, validate_email=True, throw_invalid_exception=False, headers=None)

这是关于content的介绍,就是这样了大概。

The contents argument will be smartly guessed. It can be passed a string (which will be turned into a list); or a list. For each object in the list:

If it is a dictionary it will assume the key is the content and the value is an alias (only for images currently!) e.g. {'/path/to/image.png' : 'MyPicture'}
It will try to see if the content (string) can be read as a file locally, e.g. '/path/to/image.png'
if impossible, it will check if the string is valid html e.g. <h1>This is a big title</h1>
if not, it must be text. e.g. 'Hi Dorika!'
Note that local files can be html (inline); everything else will be attached.

Local files require to have an extension for their content type to be inferred.
后面就可以开始发送邮件了,我们来看一下效果: image.png

写在最后

  1. key不是邮箱的登录密码而是SMTP授权码

附录

常用邮箱host以及port

sina.com: 
POP3服务器地址:pop3.sina.com.cn(端口:110) 
SMTP服务器地址:smtp.sina.com.cn(端口:25)   
sinaVIP: 
POP3服务器:pop3.vip.sina.com (端口:110) 
SMTP服务器:smtp.vip.sina.com (端口:25)  
sohu.com: 
POP3服务器地址:pop3.sohu.com(端口:110) 
SMTP服务器地址:smtp.sohu.com(端口:25)  
126邮箱: 
POP3服务器地址:pop.126.com(端口:110) 
SMTP服务器地址:smtp.126.com(端口:25)  
139邮箱: 
POP3服务器地址:POP.139.com(端口:110) 
SMTP服务器地址:SMTP.139.com(端口:25)  
163.com: 
POP3服务器地址:pop.163.com(端口:110) 
SMTP服务器地址:smtp.163.com(端口:25)  
QQ邮箱  
POP3服务器地址:pop.qq.com(端口:110) 
SMTP服务器地址:smtp.qq.com (端口:25)  
QQ企业邮箱 
POP3服务器地址:pop.exmail.qq.com (SSL启用 端口:995) 
SMTP服务器地址:smtp.exmail.qq.com(SSL启用 端口:587/465)
yahoo.com: 
POP3服务器地址:pop.mail.yahoo.com 
SMTP服务器地址:smtp.mail.yahoo.com  
yahoo.com.cn: 
POP3服务器地址:pop.mail.yahoo.com.cn(端口:995) 
SMTP服务器地址:smtp.mail.yahoo.com.cn(端口:587)  
HotMail 
POP3服务器地址:pop3.live.com (端口:995) 
SMTP服务器地址:smtp.live.com (端口:587) 
gmail(google.com) 
POP3服务器地址:pop.gmail.com(SSL启用 端口:995) 
SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)  
263.net: 
POP3服务器地址:pop3.263.net(端口:110) 
SMTP服务器地址:smtp.263.net(端口:25)  
263.net.cn: 
POP3服务器地址:pop.263.net.cn(端口:110) 
SMTP服务器地址:smtp.263.net.cn(端口:25) 
x263.net: 
POP3服务器地址:pop.x263.net(端口:110) 
SMTP服务器地址:smtp.x263.net(端口:25) 
21cn.com: 
POP3服务器地址:pop.21cn.com(端口:110) 
SMTP服务器地址:smtp.21cn.com(端口:25) 
Foxmail: 
POP3服务器地址:POP.foxmail.com(端口:110) 
SMTP服务器地址:SMTP.foxmail.com(端口:25)  
china.com: 
POP3服务器地址:pop.china.com(端口:110) 
SMTP服务器地址:smtp.china.com(端口:25) 
tom.com: 
POP3服务器地址:pop.tom.com(端口:110) 
SMTP服务器地址:smtp.tom.com(端口:25)  
etang.com: 
POP3服务器地址:pop.etang.com 
SMTP服务器地址:smtp.etang.com

相关文章

  • 如何使用python快速实现发邮件之yagmail?

    写在前面 自己在学习python的过程中有时候想要写一个爬虫来获取一些信息为自己带来方便,比如在爬取12306或者...

  • python发送邮件库yagmail

    出处:虫师python自动发邮件库yagmail 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候...

  • python 学习笔记 (邮件)

    yagmail 实现发邮件 安装 简单例子 SMTP 发送邮箱 通过python发邮件步骤:前提是:开通了第三方授...

  • yagmail 实现发邮件

    一般邮件发送方法如下图: 其实,这段代码并不复杂,只要理解使用发送邮件,那么以下问题就是我们必须考虑的: 1.用于...

  • 使用yagmail 发邮件

    使用yagmail之前需要先安装yagmail模块,安装命令如下: pip3 install yagmail 下面...

  • 3行代码发邮件(含发送图片)

    最近有发邮件的需求发现了一个python发邮件的开源项目yagmail, 3行代码搞定邮件, 很赞 以下三行代码实...

  • Linux中通过SHELL发送邮件

    笔者做过做过使用python发送邮件-Python使用yagmail库发送邮件[https://www.jia...

  • yagmail发邮件

    安装yagmail库 导入yagmail库及配置邮箱(以腾讯企业邮箱为例) 报错问题解决 获取授权码https:/...

  • python常用模块

    yagmail 1、首先安装yagmail软件。pip install yagmail2、yagmail使用方法:...

  • python--发送邮件yagmail

    yagmail模块是python中用来发送邮件的第三方模块,简单快速。 环境 python3.9 win10 64...

网友评论

      本文标题:如何使用python快速实现发邮件之yagmail?

      本文链接:https://www.haomeiwen.com/subject/zookpqtx.html