如何解决使用Python smtplib发送邮件时权限被拒绝错误
|| 我正在尝试使用Python 3.2发送邮件。我的代码如下:#from email import Encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE,formatdate
import os
import smtplib
from base64 import encode
from email import encoders
def sendMail(to,subject,text,files=[],server=\"smtp.mydomain.com\"):
assert type(to)==list
assert type(files)==list
fro = \"From <myemail@mydomain.com>\"
msg = MIMEMultipart()
msg[\'From\'] = fro
msg[\'To\'] = COMMASPACE.join(to)
msg[\'Date\'] = formatdate(localtime=True)
msg[\'Subject\'] = subject
msg.attach( MIMEText(text) )
for file in files:
part = MIMEBase(\'application\',\"octet-stream\")
part.set_payload( open(file,\"rb\").read() )
encoders.encode_base64(part)
part.add_header(\'Content-Disposition\',\'attachment; filename=\"%s\"\'
% os.path.basename(file))
msg.attach(part)
smtp = smtplib.SMTP_SSL(server,465)
smtp.ehlo()
smtp.set_debuglevel(1)
smtp.ehlo()
smtp.login(\"myemail@mydomain.com\",\"mypassword\")
smtp.ehlo()
smtp.sendmail(fro,to,msg.as_string() )
smtp.close()
print(\"Email send successfully.\")
sendMail(
[\"recipient\"],\"hello\",\"cheers\",[]
)
它给了我以下错误:
raise SMTPSenderRefused(code,resp,from_addr)
smtplib.SMTPSenderRefused: (501,b\'5.7.1 <myemail@mydomain.com>... Permission denied\',\'myemail@mydomain.com\')
有人知道如何解决这个问题吗?
提前致谢。
解决方法
如错误所示:在使用it3ѭ实例之前,需要调用
connect
方法。 smtplib.SMTP_SSL
不会自动连接(smtplib.SMTP
也不会)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。