在python中有一个自带的发邮件模块,就是smtplib,但是这个模块使用起来比较复杂。可以安装一个更方便的外部模块yagmail。安装方法分为直接安装,安装whl结尾的文件和安装gz结尾的压缩文件,在前面的随笔中有讲到。
接下来是yagmail的使用方法。如果你要使用python发邮件,必须先获得邮箱的授权码(不是密码!是授权码!),接下来以网易163邮箱为例说明获取授权码步骤。
登陆邮箱,点击设置,然后在设置下的选项中随意点击一个。
在展示的界面左边,选择“客户端授权密码”,再点击“开启”。
这时候会利用手机获取验证码,填入收到的验证码后,就可以获取到授权码了。然后就可以在python中进行功能编写。
1 import yagmail 2 3 username = '***************' # 账号 4 passwd = '********' # 授权码 5 mail = yagmail.SMTP(user=username, password=passwd, 6 host='smtp.163.com' 7 # port=默认值,有专用的就改就行了 8 ) # host随着所用邮箱不同而不同,如果使用的是QQ邮箱,最后还需要加smtp_ssl=True 9 # 因为QQ邮箱用的安全协议,如果所用的邮箱是安全协议的就都要加这个 10 mail.send(to='123456@qq.com', # 如果是单个收件人直接字符串就行,多个用list包裹起来 11 # cc='123456@qq.com', # 抄送用cc 12 subject='学习发送邮件', # 邮件标题 13 contents='刚刚没发出去这个附件', # 邮件内容 14 attachments='axure.pdf' # 复制一下附件的绝对路径,多个附件同样list就行 15 ) 16 print('发送成功')
在代码中发送附件时,attachments = r'文件绝对路径地址'即可。但win10和win8操作系统有点奇葩,总会出错,此时把附件复制到和代码文件同一位置,然后直接attachments = '文件名.格式'即可成功发送。