如何在不使用smtplib的情况下使用Gmail的SMTP发送电子邮件?

时间:2014-01-28 14:06:32

标签: python sockets email

这是我的代码:

import socket
import base64
s=socket.socket()    
s.connect(('smtp.gmx.com',25))    
message=s.recv(1024)    
print message    
s.send("EHLO gmx\r\n")    
message=s.recv(1024)    
print message    
Username=raw_input("Inesrt Username: ")    
Password=raw_input("Insert Password: ")    
UP=("\x00"+Username+"\x00"+Password).encode("base64")    
UP=UP.strip("\n")    
print "AUTH PLAIN "+UP    
s.send("AUTH PLAIN "+UP+"\r\n")    
message=s.recv(10000000)    
print message   
s.send("MAIL FROM:"+Username+"\r\n")    
message=s.recv(10000)    
print message    
To=raw_input("TO:")   
s.send("RCPT TO:"+To+"\r\n")   
message=s.recv(10000)  
print message    
s.send("DATA\r\n")    
message=s.recv(100000)    
print message    
Subject=raw_input("Subject: ")    
Text=raw_input("Message:")    
s.send("Subject: "+Subject+"\r\n\r\n"+Text+"\r\n.\r\n")
message=s.recv(10000)    
print message
s.send("QUIT\r\n")
message=s.recv(100000)   
print message   
s.close()

适用于常规电子邮件,但不适用于Gmail或Yahoo。如何使用类似的代码使用Gmail的SMTP发送电子邮件?

1 个答案:

答案 0 :(得分:0)

Gmail SMTP服务器不支持纯SMTP协议。你必须use TLS/SSL and connect to port 465。请参阅此question以获取更多指示。