Я не могу посылать почту многообразным отправителям с python smtplib

Добрый вечер сообщество. Я создаю рукописный шрифт в python 2.7.13, чтобы посылать почту в многообразные судьбы с присоединенным файлом. Но только он посылает это первому почтового отделения до востребования, которое у меня есть. Несмотря на это, это другая почта моего списка появляется в электронной почте, которая прибывает ко мне в мой почтовый ящик с моего рукописного шрифта.

Я импортирую необходимое, чтобы создавать мой рукописный шрифт.

# send_attachment.py
# import necessary packages
from email.mime.multipart import MIMEMultipart
from email.MIMEImage import MIMEImage
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders 
import smtplib
import mimetypes 

Здесь он я верю в мой конечный список адресатов.

msg = MIMEMultipart()



Destino=['correo1@gmail.com','correo2@gmail.com','correo3a@gmail.com','correo4@gmail.com' ]

password = "mipassword"
msg['From'] = "micorreo@gmail.com"
msg['To'] = ','.join(Destino)
msg['Subject'] = "Enviando un correo a mas de un destino"

Я подтверждаю и присоединяю тип посланного файла

ctype, encoding = mimetypes.guess_type("prueba1.csv")
if ctype is None or encoding is not None:
    ctype="applecation/actet-stream"

maintype, subtype = ctype.split("/",1)

#Se adjunta archivo y se configura 
fp=open("prueba1.csv","rb")
adjunto=MIMEBase(maintype,subtype)
adjunto.set_payload(fp.read())
fp.close()
encoders.encode_base64(adjunto)
adjunto.add_header("Content-Disposition","adjunto",filename="prueba1.csv")



msg.attach(adjunto)

Создал server и я посылаю почту (с сообщением посланной почты exitosamente)


server = smtplib.SMTP('smtp.gmail.com: 587')
server.starttls()


server.login(msg['From'], password)


server.sendmail(msg['From'], msg['To'], msg.as_string())

server.quit()

print "successfully sent email to %s:" % (msg['To'])

Проблема не с присоединенным файлом, если не, что только посылает меня ему на первую почту моего списка.

У кого-то идея есть, из которого он смог переходить? или как решать это?

2
задан 08.11.2019, 21:56
1 ответ

Протокол SMTP использует один "на" ( envelope ), что определяет каждый из адресов, в которые сервер repartirГЎ сообщение. На когда бы то ни было serГЎ видимый в конечного пользователя, так как однажды сообщение прибывает в судьбу на es разрушенный.

С другой стороны, внутри этого "на" va сообщение, которое содержит много заголовков, между которыми расположен заголовок "To:", в котором обычно мы видим список адресатов.

Однако, ничто не вынуждает, в который оба списка совпали. В на puede появляться список адресатов отличный от той, которая появляется despuГ©s в заголовках сообщения. Это - то, что происходит, если ты используешь поле Bcc во время писания сообщения. Адреса, которые ты помещаешь в Bcc usarГЎn в на, и само поле Bcc desaparecerГЎ сообщения, с которым те, кто получают это сообщение не sabrГЎn quiГ©n mГЎs, он это получил.

В твоем случае ты создаешь заголовок "To:" правильного в этих lГ-neas:

Destino=['correo1@gmail.com','correo2@gmail.com','correo3a@gmail.com','correo4@gmail.com' ]
msg['To'] = ','.join(Destino)

, что usarГЎ sГіlo для сообщения, но не для на. На он создается взамен, когда ты называешь эту funciГіn:

server.sendmail(msg['From'], msg['To'], msg.as_string())

Первый parГЎmetro sendmail() serГЎ она direcciГіn с почты до той, которая должна вручать себе сообщение, если Г©ste он "отскакивает" (не возможно вручать в судьбу). Ты можешь помещать то же самое что в заголовке "From:" сообщения, или другой вещи.

Второй parГЎmetro - адресат или заносит в список их. Эта funciГіn python asumirГЎ единственный адресат, если то, что ты перемещаешь его, является цепью (как это твой случай), или некоторые, если это список. Но в твоем случае ты это использовал плохо, так как ты послал ему список пользователей в форме цепи. То, что происходит в этом случае, зависит cГіmo манипулируйте сервером, в который ты присоединился эта цепь, отделенная запятыми. Видно, что Gmail оставляет себе sГіlo первую direcciГіn.

Следовательно soluciГіn serГЎ перемещать эту funciГіn список вместо цепи:

server.sendmail(msg['From'], Destino, msg.as_string())
1
ответ дан 01.12.2019, 12:13