如何在不使用smtplib的情况下使用Gmail的SMTP发送电子邮件? [英] How can I send email using Gmail's SMTP without using smtplib?
本文介绍了如何在不使用smtplib的情况下使用Gmail的SMTP发送电子邮件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的代码:
import socket
import base64
s = socket.socket()
s.connect(('smtp.gmx.com',25))
message = s.recv(1024)
打印消息
s.send( EHLO gmx\ \r\n)
message = s.recv(1024)
打印消息
用户名= raw_input( Inesrt用户名:)
密码= raw_input(插入密码:)
UP =( \x00 +用户名+ \x00 +密码).encode( base64)
UP = UP.strip( \n)
打印 AUTH PLAIN + UP
s.send( AUTH PLAIN + UP + \r\n)
message = s.recv(10000000)
打印消息
s.send( MAIL FROM: + Username + \r\n)
message = s.recv(10000)
打印消息
To = raw_input( TO:)
s.send( RCPT TO: + To + \r\n)
message = s.recv(10000)
打印消息
s.send( DATA\r\n)
message = s.recv(100000)
打印消息
Subject = raw_input( Subject:)
Text = raw_input( Message:)
s.se nd( Subject: + Subject + \r\n\r\n + Text + \r\n.\r\n)
message = s.recv( 10000)
打印消息
s.send( QUIT\r\n)
message = s.recv(100000)
打印消息
s。 close()
它适用于常规电子邮件,但不适用于Gmail或Yahoo。如何使用Gmail的SMTP使用类似的代码发送电子邮件?
解决方案
Gmail SMTP服务器不支持纯SMTP协议。您必须使用TLS / SSL并连接到端口465 。请参阅此问题,以获取更多有关如何执行此操作的指示。 / p>
This is my code:
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()
It works for regular email, but it does not work for Gmail or Yahoo. How can I send email using Gmail's SMTP using similar code?
解决方案
Gmail SMTP server does not support plain SMTP protocol. You have to use TLS/SSL and connect to port 465. See this question for more pointers how to do that.
这篇关于如何在不使用smtplib的情况下使用Gmail的SMTP发送电子邮件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文