Это моя ситуация:
Я использую комбинацию PHPMailer и Postfix, чтобы получить информацию из контактной формы в почтовый ящик. Я хочу, чтобы это выглядело так, как будто электронные письма, которые приходят из контактной формы, отправляются от пользователя, отправляющего данные (а не с [email protected]).
Теперь я решил эту проблему, установив адрес электронной почты и имя, например:
$m->setFrom($email, $name);
Проблема, которая возникает, заключается в следующем: из-за установки сообщения «От» мой провайдер электронной почты (zoho) видит его как спам-сообщение (полагаю, потому что я технически подделываю адрес электронной почты), и поэтому оно попадает в папку спама. ,
Есть ли способ заставить его приземлиться в моем почтовом ящике? Есть ли какой-нибудь способ, которым я могу внести в белый список «спуфинг» отправителя (то есть мой сервер)?
Я понимаю, что это можно сделать, оставив поле От электронной почты в покое и используя $m->addReplyTo
, Но я буду не единственным, кто использует учетную запись электронной почты, и я хочу избежать путаницы. Я имею в виду, что если кто-то видит входящее электронное письмо с определенным именем, а затем с адресом электронной почты, который не соответствует этому имени, он может быть сбит с толку или делать ошибки при ответе или отправке новых писем этому человеку. (они на самом деле просто отвечают на сервер). Так что это решение, которое не очень возможно для меня.
Это полный код для настройки электронной почты:
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$m = new PHPMailer;
$m->isSendmail();
$m->setFrom($email, $name);
$m->addAddress('[email protected]');
$m->Subject = $subject;
$m->Body = $message;
Нет, вы не можете подделать адреса и ожидать, что это сработает. Правильный путь заключается в том, чтобы указать свой адрес в адресе отправителя, а адрес отправителя — в ответе. Вы можете избежать визуальной путаницы, поставив название вместе с адресом от. Таким образом, это будет выглядеть так, как будто это от отправителя, ответы будут отправлены в нужное место, и вы ничего не подделываете.
$m->setFrom('[email protected]', $name);
$m->addAddress('[email protected]');
$m->addReplyTo($email);
Других решений пока нет …