Изменить заголовки писем в PHP груши - PullRequest
0 голосов
/ 26 ноября 2018

Мне нужна помощь с моим PHP.Когда я отправляю себе электронное письмо для теста, я вижу в заголовке Received: from localhost.

Вот что он показывает:

Received: from localhost ([107.191.96.136]) by appmaildev.com with Microsoft SMTPSVC(8.5.9600.16384);
     Mon, 26 Nov 2018 20:13:27 +0000
Received: from localhost (gateway1.mydomain.com [104.128.226.35])
    by mail.mydomain.com (Postfix) with ESMTPSA id E30387B8AB8A
    for <test-296da7c1@appmaildev.com>; Mon, 26 Nov 2018 15:13:25 -0500 (EST)

Вот чего я хочу достичь:

Received: from mail.mydomain.com (gateway1.mydomain.com [104.128.226.35])
        by mail.mydomain.com (Postfix) with ESMTPSA id E30387B8AB8A
        for <test-296da7c1@appmaildev.com>; Mon, 26 Nov 2018 15:13:25 -0500 (EST)

Вот код:

<?php
require_once "Mail.php";

$from = "Chris <rob@mydomain.com>";
$to = "Rob Smith <test-29634da7c1@appmaildev.com>";
$subject = "Test email number 4";
$body = "Hey Ben,

I am writing to you that someone have told me you have receive my email in your inbox.

I am interested to know how you have done it exactly??

Please let me know how you did it.

Thanks,
Rob";


$host = "smtp.mydomain.com";
$port = "587";
$username = "myusername";
$password = "mypassword";


$headers = array ('From' => $from, 
    'To' => $to, 'Subject' => $subject,
    'Reply-To' => $from,
    'Content-type' => 'text/html; charset=iso-8859-1\r\n\r\n',
    'MIME-Version' => '1.0',
    'Date'  => date("r"),
    'Message-ID' => sprintf("<%s.%s@%s>",
            base_convert(microtime(), 10, 36),
            base_convert(bin2hex(openssl_random_pseudo_bytes(8)), 16, 36),
            'mydomain.com'));

$params = array ('host' => $host,
    'port' => $port,
    'auth' => 'PLAIN', // Note 1
    'socket_options' => array('ssl' => array('verify_peer_name' => false, 'verify_peer' => false)), // Note 2
    'username' => $username,
    'password' => $password);

$smtp = Mail::factory ('smtp', $params);
$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Email has been sent!</p>");
}
?>

Я использую pear php, чтобы отправить себе электронное письмо.

Знаете ли вы, как я могу перейти с Received: from localhost на Received: from mail.mydomain.com?

Если это так, не могли бы вы показать мне пример того, что я должен использовать для удаления localhost?

1 Ответ

0 голосов
/ 11 марта 2019

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

У меня была похожая проблема несколько лет назад.Каковы подробности (например, локальный ли это, какой программный пакет и т. Д.).

Что я сделал, так это попросил localhost сообщить другим серверам, что это (в вашем случае) "mail.mydomain.com".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...