2012-04-02 2 views
2

Я видел следующий вопрос, но у меня все еще есть несколько сомнений.Проблема с отправкой писем с идентификатора электронной почты рассылки [Python]

Sending an email from a distribution list

Во-первых, у меня есть индивидуальный счет почты, а также идентификатор распределения, используемый для группы в конкретном почтовом сервере. Я могу отправлять письма из идентификатора электронной почты распространения через 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 

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

ответ

1

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

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

+0

Спасибо ... Я использовал свое имя пользователя и пароль для s.login() и указал список рассылки как FROMADDR. Это сработало – Pulimon

Смежные вопросы