Почему при отправке письма через smtp при вызове sendmail сервер выдает ошибку 501, хотя адрес отправителя я указываю в верном формате?

При отправке письма из скрипта на python через smtp при вызове sendmail сервер выдает ошибку 501, хотя адрес отправителя я указываю в верном формате:

def send_email(self):
    
    tema = self.lineEdit_tema_letter.text() 
    sender_name = self.lineEdit_name_sender.text()
    sender_pass = self.lineEdit_pass_sender.text()
    server = self.lineEdit_email_sender.text()
    mail_server = 'smtp.' + server
    mail_server_port = 465
    addr_from = sender_name + '@' + server # !!!! этот адрес я подставляю в sendmail!!!!        
    s = smtplib.SMTP_SSL(mail_server, mail_server_port)
    s.set_debuglevel(1)
    s.ehlo(addr_from)
    s.login(sender_name, sender_pass) # здесь судя по ответам сервера все нормально

    for row in self.r_list:
            message = MIMEMultipart()
            message['From'] = Header(addr_from, 'utf-8')
            message['To'] = Header(row["email"], 'utf-8')
            subject = tema
            message['Subject'] = Header(subject, 'utf-8')
            text_to_send = 'login: '+row["username"]+'  '+'password: '+row["password"]
            #print(text_to_send)
            messageText = MIMEText(text_to_send, 'plain', 'utf-8')
            message.attach(messageText)

            try:
                with open(self.att_file_name, "rb") as fh:
                    data = fh.read()
                    attachment = MIMEBase('application', "octet-stream")
                    attachment.set_payload(data)
                    encoders.encode_base64(attachment)
                    attachment.add_header('Content-Disposition', "attachment; filename= %s" % os.path.basename(self.att_file_name))
                    message.attach(attachment)
            except IOError:
                print("Error opening attachment file %s" % self.att_file_name)

            s.sendmail(addr_from, row["email"], message.as_string()) # вот тут выдает 501

    s.quit()

Вот вывод debug отправки сообщений:

send: 'ehlo xx.xx.xxx.xxx.in-addr.arpa\r\n'
reply: b'250-mail.rambler.ru\r\n'
reply: b'250-SIZE 104857600\r\n'
reply: b'250-ENHANCEDSTATUSCODES\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250 AUTH PLAIN LOGIN\r\n'
reply: retcode (250); Msg: b'mail.rambler.ru\nSIZE 104857600\nENHANCEDSTATUSCODES\n8BITMIME\nAUTH PLAIN LOGIN'
send: 'ehlo [email protected]\r\n'
reply: b'250-mail.rambler.ru\r\n'
reply: b'250-SIZE 104857600\r\n'
reply: b'250-ENHANCEDSTATUSCODES\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250 AUTH PLAIN LOGIN\r\n'
reply: retcode (250); Msg: b'mail.rambler.ru\nSIZE 104857600\nENHANCEDSTATUSCODES\n8BITMIME\nAUTH PLAIN LOGIN'
send: 'AUTH PLAIN AHZzaS5tdmQuY291cnNlAEVnaGZka3R5YnQwMQ==\r\n'
reply: b'235 2.0.0 OK\r\n'
reply: retcode (235); Msg: b'2.0.0 OK'
send: 'mail FROM:<[email protected]> size=10920\r\n'
reply: b'250 2.1.0 Ok\r\n'
reply: retcode (250); Msg: b'2.1.0 Ok'
send: 'rcpt TO:<[email protected]>\r\n'
reply: b'501 5.5.2 <xxxx.xxx.xxxxxx?rambler.ru>: Helo command rejected: Invalid name\r\n'
reply: retcode (501); Msg: b'5.5.2 <xxx.xxx.xxxxxx?rambler.ru>: Helo command rejected: Invalid name'
send: 'rset\r\n'
reply: b'250 2.0.0 Ok\r\n'
reply: retcode (250); Msg: b'2.0.0 Ok'
Traceback (most recent call last):
  File "/xxxx/xxxxxxxxxxxx/PycharmProjects/send_mail/main.py", line 68, in send_email
    s.sendmail('[email protected]', row["email"], message.as_string())
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/smtplib.py", line 901, in sendmail
    raise SMTPRecipientsRefused(senderrs)
smtplib.SMTPRecipientsRefused: {'[email protected]': (501, b'5.5.2 <xxx.xxx.xxxxxx?rambler.ru>: Helo command rejected: Invalid name')}

sendmail в адрес отправителя вставляет ? , хотя я в функцию передаю правильный адрес отправителя. В чем может быть дело?


Ответы (0 шт):