Discuss / Python / 向各类型邮箱发送邮件的问题

向各类型邮箱发送邮件的问题

Topic source

Adam常

#1 Created at ... [Delete] [Delete and Lock User]

代码如下:

#!/usr/bin/env  python
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

import smtplib

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

from_addr = input('From: ')
password = input('Password: ')
to_addr = input('To: ')
smtp_server = input('SMTP server: ')

msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = _format_addr('Python爱好者 <%s>' % from_addr)
msg['To'] = _format_addr('管理员 <%s>' % to_addr)
msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode()

server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

由于163邮箱的手机不能验证,开启不了smtp,所以没有验证。

发送给outlook和yahoo邮箱,出现下面错误: smtplib.SMTPException: SMTP AUTH extension not supported by server. 是outlook和yahoo不支持吗,还是设置错误?

发送给qq邮箱,出现下面错误: smtplib.SMTPAuthenticationError: (535, b'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\xbc\xa1\xa3\xcf\xea\xc7\xe9\xc7\xeb\xbf\xb4: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256') 看网页应该是需要一个什么登录验证码,不知道怎么解决。

最后发送给aliyun邮箱,成功了。

ButFlame

#2 Created at ... [Delete] [Delete and Lock User]

一个小时前刚解决这个问题, qq邮箱需要授权码,可参考报错信息中的链接获取,然后将获取的授权码赋值给邮箱密码,在flask-mail中是MAIL_PASSWORD=‘#授权码’。 时隔一年半……希望可以帮到你

bcai_xl

#3 Created at ... [Delete] [Delete and Lock User]

具体是怎么样的?我是用163发送,qq用来接收邮件。我的授权码要放在哪里才可以呢?

QQ邮箱的授权码就是用授权码代替密码就行了,二楼的 MAIL_PASSWORD=‘#授权码’ 多了个#号


  • 1

Reply