email - Problema no nome do postfix com o uso do $ header “name email”

1

Eu configurei o Postfix na minha máquina Ubuntu + Nginx para enviar mensagens e estou trabalhando em um problema.

O problema é que o nome do remetente é www-data com o email [email protected] .

Como esse é um formulário "enviar para um amigo", o nome do usuário deve ser $_POST['sendername'] , então o e-mail é enviado e exibido como proveniente do usuário remetente e do e-mail e não pode ser codificado em /etc/postfix/main.cf ou qualquer outro lugar, pois é dinâmico nesse sentido, conforme descrito acima.

Mesmo testando o cabeçalho "de" para um valor codificado como você pode ver onde comentei, ele ainda não aparece como o do nome e do e-mail.

Alguma ideia? Obrigado.

    $to = $_POST['recipientemail'];
    $subject = $_POST['subject'];
    //$headers = "From: Me <[email protected]>\r\n";
    $headers = "From: " . $_POST['sendername'] . " <" . $_POST['senderemail'] . ">\r\n";
    $headers.= "Reply-To: " . $_POST['sendername'] . " <" . $_POST['senderemail'] . ">\r\n";
    $headers = "To: " . $_POST['recipientname'] . " <" . $_POST['recipientemail'] . ">\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $headers .= "X-Mailer: PHP/" . phpversion();
    $message = '<html><body>';
    $message .= $_POST['message'];;
    $message .= "</body></html>";

    mail($to, $subject, $message, $headers);

/etc/postfix/main.cf

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:myuser:mypass
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
header_size_limit = 4096000
inet_interfaces = all
mailbox_size_limit = 0
mydestination = ip-123-45-67-890.ap-southeast-2.compute.internal, localhost.ap-southeast-2.compute.internal, , localhost
myhostname = ip-123-45-67-890.ap-southeast-2.compute.internal
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:myuser:mypass
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
    
por DT.DTDG 24.10.2014 / 07:50

1 resposta

1

Deve ter sido uma longa sexta-feira quando postei a pergunta. Agora, com uma cabeça clara de "segunda-feira", consegui descobrir. Os cabeçalhos não foram definidos corretamente em termos de onde o .= foi para cada um.

Deveria ter sido:

$headers = "From: " . $_POST['sendername'] . " <" . $_POST['senderemail'] . ">\r\n";
$headers .= "Reply-To: " . $_POST['sendername'] . " <" . $_POST['senderemail'] . ">\r\n";
$headers .= "To: " . $_POST['recipientname'] . " <" . $_POST['recipientemail'] . ">\r\n";
    
por DT.DTDG 26.10.2014 / 23:52