代码之家  ›  专栏  ›  技术社区  ›  Biswas Sampad

使用AWS SES+Python SMTP时,“function”对象没有属性“encode”错误

  •  0
  • Biswas Sampad  · 技术社区  · 2 年前

    我正试图使用AWS SES从python smtp发送一封电子邮件,但我收到了这个错误。

    'function' object has no attribute 'encode'
    

    发送的电子邮件看起来是这样的

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    
    import common.config_constants as constants
    
    
    class Email_util:
    
        def __init__(self) -> None:
            self.smtp_server = 'email-smtp.us-east-1.amazonaws.com'
            self.smtp_port = constants.SMTP_PORT
            self.workmail_user = constants.SMTP_USER
            self.workmail_pass = constants.SMTP_PASS
            self.sender = constants.FORGOT_PASSWORD_EMAIL_HANDLER
            pass
    
        def send_email(self, receiver, subject, body):
            msg = MIMEMultipart()
            msg['From'] = self.send_email
            msg['To'] = receiver
            msg['Subject'] = subject
    
            # Attach the email body
            msg.attach(MIMEText(body, 'plain'))
    
            try:
                # Establish a connection to Amazon WorkMail SMTP server
                server = smtplib.SMTP(self.smtp_server, self.smtp_port)
                server.starttls()
    
                # Login to Amazon WorkMail
                server.login(self.workmail_user, self.workmail_pass)
    
                # Send the email
                server.sendmail(self.sender, receiver, msg.as_string())
    
                print("Email sent successfully!")
                return True
            except for Exception as e:
                print(f"Error sending email: {e}")
                return False
    

    任何帮助都将不胜感激。提前感谢

    1 回复  |  直到 2 年前
        1
  •  1
  •   elsholz    2 年前
        def send_email(self, receiver, subject, body):
            msg = MIMEMultipart()
            msg['From'] = self.send_email
    

    你把函数 self.send_email 作为的值 msg['From'] 这里,这应该是一个字符串。 Python中的字符串有一个名为的属性 encode ,实际上是一个用于将其从一种格式转换为另一种格式的函数(例如,将“UTF-8”转换为字节数组)。

    希望能有所帮助:)