开发者社区> 问答> 正文

在阿里云centos7上使用python3 MIMEText smtplib发送邮件超时


python3.5.2,
代码:

from email.mime.text import MIMETextimport smtplib

msg = MIMEText('hello world','plain','utf-8')
#1、邮件内容。2、plain表示纯文本。3、utf-8编码

from_addr = " 12345@qq.com"#Email地址
password = "12345"#密码
to_addr = " 12345@qq.com"#收件人地址
port = 25


server = smtplib.SMTP(smtp_server, port)
#1、SMTP服务器。2、端口

server.set_debuglevel(1)#打印出与SMTP服务器交互信息,True打印,False不显示。(真假)

server.login(from_addr,password)
#1、Email地址。2、密码。登录STMP服务器

server.sendmail(from_addr, [to_addr], msg.as_string())#sendmail 发送邮箱,可以一次发送多人
#1、发送人,2、收件人,3、内容,as_string()把MIMEText对象变成str

server.quit()



然后等了很久 提示:

Traceback (most recent call last):  File "regiemail.py", line 30, in <module>
    server = smtplib.SMTP(smtp_server, port)  File "/usr/local/python3/lib/python3.5/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)  File "/usr/local/python3/lib/python3.5/smtplib.py", line 335, in connect
    self.sock = self._get_socket(host, port, self.timeout)  File "/usr/local/python3/lib/python3.5/smtplib.py", line 306, in _get_socket
    self.source_address)  File "/usr/local/python3/lib/python3.5/socket.py", line 711, in create_connection
    raise err  File "/usr/local/python3/lib/python3.5/socket.py", line 702, in create_connection
    sock.connect(sa)TimeoutError: [Errno 110] Connection timed out




在win10上,直接执行代码成功,把代码传到阿里云的centos7上,就提示超时了.

展开
收起
qxkbwl 2017-05-09 10:35:03 8227 0
1 条回答
写回答
取消 提交回答
  • 旺旺:nectar2。
    楼主您好,

    抱歉给您带来不便。

    有用户反馈,新开通的阿里云实例默认是禁止与外网的25端口访问,所以可能出现发信不了的情况。

    如果您的邮件服务商支持如smtps的,建议使用smtps的端口,如这里的例子:《连接外网SMTP服务器SSL加密端口》(如阿里云企业邮箱465端口) - https://bbs.aliyun.com/read/302371.html
    2017-05-13 11:59:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Improving Python and Spark 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载