使用SMTP SSL/端口465发送邮件

16 投票
3 回答
50780 浏览
提问于 2025-04-18 12:45

我想用我的bluehost邮箱通过SMTP SSL/465端口发送邮件。
我在谷歌上找不到能用的代码,试了超过5个代码都不行。所以,有谁能提供一个可以用来通过SMTP SSL/465端口发送邮件的有效代码吗?

3 个回答

5

你不应该发这样的提问。请告诉我们你做了些什么,有没有尝试过?写过什么代码等等。

无论如何,希望这些对你有帮助。

import smtplib  

fromaddr = 'uremail@gmail.com'  
toaddrs  = 'toaddress@ymail.com'  
msg = "I was bored!"


# Credentials   

password = 'password'

# The actual mail send  
server = smtplib.SMTP('smtp.gmail.com:587')  
server.starttls()  
server.login(fromaddr,password)




server.sendmail(fromaddr, toaddrs, msg)


server.quit()

print "done" 
6

对于SSL的465端口,你需要使用SMTP_SSL,而不是单纯的SMTP。

想了解更多信息,可以查看这里。

https://docs.python.org/2/library/smtplib.html

26

为了更清楚地说明dave的解决方案,我来分享一下我是怎么让我的SSL服务器正常工作的(我不是在用gmail,但原理是一样的)。我的邮件系统会在某个特定文件缺失时发送邮件(出于内部目的,这种情况是不好的)。

import smtplib
import os.path

from email.mime.text import MIMEText

if (os.path.isfile("filename")):
    print "file exists, all went well"
else:
    print "file not exists, emailing"

    msg = MIMEText("WARNING, FILE DOES NOT EXISTS, THAT MEANS UPDATES MAY DID NOT HAVE BEEN RUN")

    msg['Subject'] = "WARNING WARNING ON FIRE FIRE FIRE!"

    #put your host and port here 
    s = smtplib.SMTP_SSL('host:port')
    s.login('email','serverpassword')
    s.sendmail('from','to', msg.as_string())
    s.quit()
print "done"

撰写回答