Проблема с отправкой писем с почтового идентификатора рассылки [Python] - PullRequest
2 голосов
/ 02 апреля 2012

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

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

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

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

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


FROMADDR = "myaddr@server.com"
GROUP_ADDR = ['group@server.com']
PASSWORD = 'foo'


TOADDR   = ['toaddr@server.com']
CCADDR   = ['group@server.com']

# 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:<group@server.com> 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

Может ли кто-нибудь помочь мне здесь?

1 Ответ

1 голос
/ 02 апреля 2012

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

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

...