繁体   English   中英

使用 Python smtplib 发送邮件时权限被拒绝错误

[英]Permission Denied error while sending mail using 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')

有谁知道如何解决这个问题?

提前致谢。

正如错误所说:在尝试使用它之前,您需要在smtplib.SMTP_SSL实例上调用connect方法。 smtplib.SMTP_SSL不会自动连接( smtplib.SMTP也不会。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM