Проблема с отправкой писем с идентификатора рассылки [Python]

Я видел следующий вопрос, но у меня все еще есть несколько сомнений.

Отправка электронного письма из списка рассылки

Во-первых, у меня есть отдельная учетная запись электронной почты, а также идентификатор рассылки, используемый для группы на определенном почтовом сервере. Я могу отправлять письма с идентификатора рассылки через Outlook, просто указав поле From. Он не требует аутентификации.

Я использовал следующий код для отправки писем через свою личную учетную запись:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os


FROMADDR = "[email protected]"
GROUP_ADDR = ['[email protected]']
PASSWORD = 'foo'


TOADDR   = ['[email protected]']
CCADDR   = ['[email protected]']

# Create message container - the correct MIME type is multipart/alternative.
msg            = MIMEMultipart('alternative')
msg['Subject'] = 'Test'
msg['From']    = FROMADDR
msg['To']      = ', '.join(TOADDR)
msg['Cc']      = ', '.join(CCADDR)

# Create the body of the message (an HTML version).
text = """Hi  this is the body
"""

# Record the MIME types of both parts - text/plain and text/html.
body = MIMEText(text, 'plain')

# Attach parts into message container.
msg.attach(body)

# Send the message via local SMTP server.
s = smtplib.SMTP('server.com', 587)
s.set_debuglevel(1)
s.ehlo()
s.starttls()
s.login(FROMADDR, PASSWORD)
s.sendmail(FROMADDR, TOADDR, msg.as_string())
s.quit()

Это прекрасно работает. Поскольку я могу отправлять почту с идентификатора рассылки через Outlook (без пароля), можно ли каким-либо образом изменить этот код для отправки почты через идентификатор рассылки? Я попытался закомментировать

s.ehlo()
s.starttls()
s.login(FROMADDR, PASSWORD)

часть, но код дает мне следующую ошибку:

send: 'mail FROM:<[email protected]> size=393\r\n'
reply: b'530 5.7.1 Client was not authenticated\r\n'
reply: retcode (530); Msg: b'5.7.1 Client was not authenticated'
send: 'rset\r\n'
Traceback (most recent call last):
  File "C:\Send_Mail_new.py", line 39, in <module>
    s.sendmail(FROMADDR, TOADDR, msg.as_string())
  File "C:\Python32\lib\smtplib.py", line 743, in sendmail
    self.rset()
  File "C:\Python32\lib\smtplib.py", line 471, in rset
    return self.docmd("rset")
  File "C:\Python32\lib\smtplib.py", line 395, in docmd
    return self.getreply()
  File "C:\Python32\lib\smtplib.py", line 371, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

Кто-нибудь любезно поможет мне здесь?


person Pulimon    schedule 02.04.2012    source источник


Ответы (1)


reply: retcode (530); Msg: b'5.7.1 Client was not authenticated'

Это означает, что вам нужна аутентификация. Outlook, вероятно, использует ту же аутентификацию для вашей существующей учетной записи (поскольку вы изменили только заголовок From).

person Burhan Khalid    schedule 02.04.2012
comment
Спасибо... Я использовал свое имя пользователя и пароль для s.login() и указал список рассылки как FROMADDR. Это сработало - person Pulimon; 02.04.2012
comment
где дать пароль - person pyd; 20.03.2018