Подтвердить что ты не робот

Как удалить "через" и имя сервера при отправке писем с помощью PHP?

Когда я отправляю почту с PHP, destinatary получает заголовок, подобный этому:

   [email protected] **via** de p3nlhg147.shr.prod.phx3.secureserver.net

Я хочу удалить часть "через". Большинство автоматических писем с веб-сайтов не имеют "через", поэтому его можно удалить.

Как они это делают?

4b9b3361

Ответ 1

Да, вы можете избавиться от части "через". Здесь подробности:

1) SPF and DKIM

Во-первых, вам нужно будет установить запись SPF для домена, с которого вы отправляете электронные письма, и включить DKIM. Это прежде всего для идентификации ваших сообщений против спама.

2) "From: [email protected]"

Во-вторых, убедитесь, что вы устанавливаете заголовок "From:", чтобы быть адресом электронной почты в домене, с которого вы отправляете сообщения. Не притворяйся кем-то другим. Используйте "From: [email protected]", если вы отправляете сообщения с сайта abc.com, а не что-либо еще, например [email protected] или [email protected], или что-то еще. Если вы хотите, чтобы получатель отвечал на ваш почтовый адрес Gmail вместо электронной почты вашего домена, используйте заголовок "Reply-To:". "From:" всегда должно быть адресом электронной почты домена, с которого вы отправляете электронное письмо.

3) "Return-Path: [email protected]"

В-третьих, самое главное, установите заголовок "Return-Path:" в том же домене, что и заголовок "From:". Используйте 5-й параметр функции mail() для этого:

mail('[email protected]', 'Subject', "Message Body", $headers, '[email protected]')

Таким образом, возвращаемый путь этого сообщения будет "[email protected]" (адрес электронной почты сразу после ключа -f). Параметр $headers должен содержать все необходимые заголовки сообщений. Убедитесь, что "From:" - это [email protected]

После этих шагов и мер Gmail теперь полностью доверяет вашим сообщениям от yourdomain.com. Поле "через" ваших сообщений должно исчезнуть, а поле "по почте", а также поле "подписанный" должно отображаться правильно как yourdomain.com.

Надеюсь, что это поможет!

Ответ 2

Я также воспользовался той же проблемой. Но я преодолел проблему, используя следующий код:

mail('[email protected]', 'the subject', 'the message', null,'[email protected]');

Убедитесь, что последний параметр - -f с адресом электронной почты.

Вы можете добавить

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";<br />
mail('[email protected]', 'the subject', 'the message body in html format', $headers,'[email protected]');

для тела сообщения html в электронной почте.

Ответ 3

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

Я бы рекомендовал отправлять почту не с помощью функции PHP mail(), а через SMTP, возможно даже с SMTP-Auth, используя что-то вроде PHPMailer.

Ответ 5

@Муджибур тоже прав, но я использовал. Но не пропустил и заголовки.

mail($to, $subject, $message, $headers, '-f'.$from_email_address);

И это успешно для меня, давайте проверим это с вашей стороны.