在使用python进行SMTP服务进行发送邮件的时候,出现在发送的的过程中阻塞但是并不报错的现象,经过调试后发现,在连接SMTP服务器的时候发生阻塞。这个原因的产生是因为阿里云服务器关闭了25号端口,这个25号端口正是SMTP需要的端口。
为了解决25号端口的问题,可以采用带有SSL的SMTP服务。这个服务采用的端口是465。
from os import system
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import smtplib
def mail():
from_addr = "" #email addresss include domain name
password = "" #password
to_addr = "" # target email address
smtp_server = "smtp.qq.com" #smtp sever domain for qq is smtp.qq.com
msg = MIMEText('hello, send by python !!!','plain','utf-8')
msg['Subject'] = Header("test auto send mail", 'utf-8')
msg['from'] = from_addr
msg['to'] = to_addr
server = smtplib.SMTP_SSL() # server = smtplib.SMTP()
#server.set_debuglevel(1)
server.connect(smtp_server,465)
#server = smtplib.SMTP_SSL(smtp_server,465)
server.ehlo(smtp_server)
server.login(from_addr,password)
server.sendmail(from_addr,to_addr, msg.as_string())
server.quit()
print('email has send out !')
return True
mail()