smtplib.SMTPResponseException:535错误的身份验证数据Apache、python、smtplib modu

2024-09-27 21:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过我大学的SMTP服务器发送电子邮件。我写了一些python代码。代码本身运行良好,但我认为SMTP服务器有问题。我想我应该和管理员联系,但我该怎么跟他说呢?这真的是服务器问题吗?我的代码如下所示:

import smtplib
import string

fromaddr = str('from@subunidomain.server.com')
password = str('secretpass')

toaddrs  = 'to@unidomain.com'
server_smtp = 'smtp.server.com'
port_smtp = 465

msg = 'There was a terrible error that occured and I wanted you to know'

BODY = string.join((
        "From: %s" % fromaddr,
        "To: %s" % toaddrs,
        "Subject: %s" % 'Hello' ,
        "",
        'Hello'
        ), "\r\n")

try :

    server = smtplib.SMTP_SSL(host=server_smtp, port=port_smtp)
    server.set_debuglevel(True)
    server.login(fromaddr,password)
    server.sendmail(fromaddr, toaddrs, str(BODY))
    server.quit()

except smtplib.SMTPServerDisconnected :
    print "smtplib.SMTPServerDisconnected"
except smtplib.SMTPResponseException, e:
    print "smtplib.SMTPResponseException: " + str(e.smtp_code) + " " + str(e.smtp_error)
except smtplib.SMTPSenderRefused:
    print "smtplib.SMTPSenderRefused"
except smtplib.SMTPRecipientsRefused:
    print "smtplib.SMTPRecipientsRefused"
except smtplib.SMTPDataError:
    print "smtplib.SMTPDataError"
except smtplib.SMTPConnectError:
    print "smtplib.SMTPConnectError"
except smtplib.SMTPHeloError:
    print "smtplib.SMTPHeloError"
except smtplib.SMTPAuthenticationError:
    print "smtplib.SMTPAuthenticationError"
except Exception :
    print "Exception"

我从服务器上得到这样的回应:

^{pr2}$

有什么问题,怎么解决?我的密码和电子邮件100%正确。

{从这里写入(>发件人@subunidomain.server.com相反,它不起作用):

smtp.server.com
SMTP Username from
Output  

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.server.com", port 25, isSSL false
220-smtp.server.com ESMTP Exim 4.69 #1 Wed, 29 Apr 2015 23:05:53 +0200 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
DEBUG SMTP: connected to host "smtp.server.com", port: 25

EHLO localhost
250-smtp.server.com Hello pingability.com [72.249.37.67]
250-SIZE 78643200
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
DEBUG SMTP: Found extension "SIZE", arg "78643200"
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
AUTH LOGIN
334 VXNlcm5hbWU6
YWk=
334 UGFzc3dvcmQ6
YW5uYWxlc3VtY3MyMDE1
235 Authentication succeeded
DEBUG SMTP: use8bit false
MAIL FROM:<smtptester@pingability.com>
250 OK
RCPT TO:<smtptester@pingability.com>
250 Accepted
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   smtptester@pingability.com
DATA
354 Enter message, ending with "." on a line by itself
Date: Wed, 29 Apr 2015 21:05:53 +0000 (UTC)
From: smtptester@pingability.com
To: smtptester@pingability.com
Message-ID: <8486466.51545.1430341553138.JavaMail.tomcat@localhost>
Subject: Pingability Test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Pingability Test
.
250 OK id=1YnZB5-0006N0-Nd
QUIT
221 smtp.server.com closing connection

Tags: todebugcomserverportextensionargsmtp
1条回答
网友
1楼 · 发布于 2024-09-27 21:23:59

也许您可以尝试使用yagmail发送消息。在

安装:

pip install yagmail

然后导入、创建连接对象并发送电子邮件:

import yagmail
yag = yagmail.Connect('user', 'pass', server_smtp, port_smtp, set_debuglevel = 1)
yag.send(toaddrs, Subject = 'Hello', Body = 'Hello')

如果你遇到任何错误,请告诉我。在

免责声明/背景:我是yagmail的维护者/开发人员。 这个软件包的目的是让很多东西在发送电子邮件时非常方便。例如,您可以使用它的特性不在脚本中写入密码,而是将其存储在keyring中(非常安全,您可以在github上阅读)。 它还有一些方法可以使它变短,例如:

^{pr2}$

附件(例如HTML/images)非常容易使用,但我不会去那里,因为它没有被要求。最后,一旦超出范围,它就会自动退出。在

相关问题 更多 >

    热门问题