首页 > 解决方案 > 无法与多个收件人一起发送邮件

问题描述

我在向多个收件人发送附件时遇到问题我试图这样做但没有成功,这是我的代码:

def mail_semanal(msg_to, asunto="Reporte semanal", message="Reporte"):
    msg = MIMEMultipart()
    msg['From'] = 'postmaster@xxx.com'
    msg_to = msg_to
    msg['Subject'] = asunto
    
    msg.attach(MIMEText(message))
    mailserver = smtplib.SMTP('smtp-relay.xxx.com',587)
    mailserver.ehlo()
    mailserver.starttls()
    # adjunto
    filename = folder + reporte
    with open(filename, 'r') as f:
        message = MIMEText(f.read())
        message.add_header('Content-Disposition', 'attachment', filename=reporte)
        msg.attach(message)
    user = 'postmaster@xxx.com'
    pwd = 'xxx'
    mailserver.ehlo()
    mailserver.login(user,pwd)
    mailserver.sendmail('smtp-relay.xxx.com',msg_to,msg.as_string())
    header = '\nTo:' + msg_to  + '\n' + 'From: ' + msg['From'] + '\n' + 'Subject:'+ msg['Subject'] +'\n'
    print(header)
    print ('enviado a las '+datetime.datetime.now().strftime("%d/%m/%Y %H:%M:%S")+' !')
    mailserver.quit()

当我尝试发送给多个收件人时,它只发送到列表中的第一个收件人,这是主要的代码:


#Escribir consulta 
fnreporte.base_datos("select archivo_idreg,idtransferencia,round((montototal),2,1),c.diasremision idcliente_new,c.idcliente,c.razonsocial,t.fechadeposito from cdpnew..transferencias t left join clientes c on c.idcliente=t.idcliente where t.fechadeposito>'"+fecha+"'  and t.montototal<>0")


fecha=datetime.datetime.now().strftime("%m-%Y")
#escribir cabecera del excel con el siguiente formato ('c1,c2,c3,c4')
fnreporte.cvs('IDREG, IDTRANSFERENCIA, MONTOTOTAL, ID CLIENTE NUEVO, ID CLIENTE, RAZON SOCIAL, FECHA DEPOSITO',"Reporte_semanal_de_OP_PEI_Débito"+fecha+".csv")

#escribir destinatario
fnreporte.mail_semanal(['ZANAGA@LIVE.COM.AR,ivkanian@gmail.com'],"Reporte semanal de OP PEI - Débito "+fecha,"se adjunta el documento con el detalle")

标签: pythonemailattachment

解决方案


推荐阅读