如何在不使用smtplib的情况下使用Gmail的SMTP发送电子邮件? [英] How can I send email using Gmail's SMTP without using smtplib?

查看:88
本文介绍了如何在不使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆