postfix envia correio de domínio errado / código Python 3 para enviar correio utf8

0

Eu tenho uma máquina com dois nomes de domínio, digamos a.com e b.com.

Quando eu uso o postfix para enviar algo de um endereço como [email protected], ele sempre é substituído por [email protected]. Meu arquivo main.cf especifica apenas a.com, então não sei de onde vem o b.com.

Aqui está a parte relevante de maillog ... a primeira linha é a introdução da mensagem e então a sexta linha é aquela em que [email protected] aparece misteriosamente.

mymachine sendmail[28543]: qA3NGbOR028543: [email protected], size=792, class=0, nrcpts=1, msgid=<[email protected]>, relay=apache@localhost
mymachine postfix/smtpd[28546]: connect from b.com[127.0.0.1]
mymachine postfix/smtpd[28546]: 912F9758031: client=b.com[127.0.0.1]
mymachine postfix/cleanup[28549]: 912F9758031: message-id=<[email protected]>
mymachine sendmail[28543]: qA3NGbOR028543: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30792, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 912F9758031)
mymachine postfix/qmgr[28527]: 912F9758031: from=<[email protected]>, size=1130, nrcpt=1 (queue active)

Não tenho certeza se é relevante como eu chamei isso, mas é de algum email do PHP () e assegurei que o sinalizador -f seja passado adiante. Se mais alguma informação puder ajudar, será um prazer entregá-la!

    
por daveagp 04.11.2012 / 00:27

1 resposta

0

Seguindo

link

Eu achei mais fácil desinstalar o sendmail, instalar o postfix e usar um script Python para enviar o email. Aqui está o código do Python 3 que eu usei para enviar a mensagem (precisava ser internacionalizada, portanto, as codificações UTF-8).

import email.message, email.mime.text, smtplib, sys
from email.utils import parseaddr, formataddr
from email.header import Header
from email.charset import Charset

def format_address(name, email):
    if not name:
        return email
    name = Charset('iso-8859-1').header_encode(name)
    return formataddr((name, email))

def send_unicode_email(mFrom, mTo, mSubject, mBody):
    sender_name, sender_addr = parseaddr(mFrom)
    recipient_name, recipient_addr = parseaddr(mTo)

    composed = email.mime.text.MIMEText(mBody.encode('UTF-8'), _charset='UTF-8')
    composed['from'] = format_address(sender_name, sender_addr)
    composed['to'] = format_address(recipient_name, recipient_addr)
    composed['subject'] = Header(mSubject, 'UTF-8')

    srv = smtplib.SMTP('localhost')
    srv.send_message(composed)
    srv.quit()
    
por 12.11.2012 / 00:17