электронная почта - Постфикс называет проблему с использованием $header “имя <электронная почта>”

Я настроил Постфикс на своей машине Ubuntu+Nginx для отправки почты, и я работаю в к одной проблеме.

Проблема - то, что с имени www-data с электронной почтой www-data@ip-123-45-67-890.ap-southeast-2.compute.internal.

Поскольку это, "отправляют другу" форму, с имени должен быть $_POST['sendername'] таким образом, электронное письмо послано и обнаруживается как прибывающий от передающего пользователя и их электронной почты, и не может быть трудно кодировано в /etc/postfix/main.cf или где-либо еще поскольку это динамично в этом смысле согласно вышеупомянутому.

Даже тестирование "от" заголовка до трудно кодированного значения, поскольку Вы видите, где я прокомментировал, это все еще, не появляется как это с имени и адреса электронной почты.

Какие-либо идеи?Спасибо.

    $to = $_POST['recipientemail'];
    $subject = $_POST['subject'];
    //$headers = "From: Me <me@testtesttest.com>\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
1
задан 27 October 2014 в 01:35

1 ответ

Должно быть, было длинное в пятницу, когда я отправил вопрос. Теперь с ясным в "понедельник" направляются, я смог понять это. Заголовки не были установлены правильно с точки зрения где .= был для каждого.

Это должно было быть:

$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";
1
ответ дан 7 December 2019 в 16:29

Другие вопросы по тегам:

Похожие вопросы: