发送邮件
发送邮件的模块:yamail==>从yagmail改的 附件有中文的时候会乱码,修改了这一点
-
yagmail.SMTP()参数
yagmail.SMTP()里面的几个重要参数!user和password顾名思义啦,就是你自己的邮箱账号和密码
但是这个问题就来了,平时登陆邮箱一般账号密码登陆有些时候好像是要打验证码的呀,这样python就传了个账号和密码真的能把邮件发出去吗?然此密码非彼密码,用的密码是邮箱中的授权码,就是专门授权给机器登陆的密码。一般邮箱中,进入设置,然后POP3/SMTP/IMAP设置,打开服务就可以设置授权码了。 -
#163、qq邮箱为授权码,一般公司邮箱是登录密码
-
send()参数
yag.send(to=args.to,subject=args.subject,contents=args.contents,attachments=args.attachments)
args.to 是收件人邮箱(给多个目标发邮件只需创建一个列表,将邮箱放在列表中即可)
args.subject 是主题
args.contents 是邮箱正文
args.attachments 是附件(传入文件路径)
问题:
使用yagmail发送邮件时,直接使用邮箱密码,提示:smtplib.SMTPAuthenticationError: (535,
qq邮箱授权码:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
smtplib.SMTPAuthenticationError: (535, ‘Error: authentication failed, system busy’) --密码错误
username = "你的qq号码@qq.com"
password = "n你的授权码"
host = "smtp.qq.com" # qq
smtp = yamail.SMTP(host=host, user=username, password=password)
# smtp.send(to=['1132640782@qq.com', '394443663@qq.com'])
smtp.send(to='11收件箱2@qq.com',
cc='39收件箱@qq.com',
subject='这里是标题',
contents='这里是内容',
attachments='a.jpg') # 最后一个是附件