Я хотел повернуть исходные IP-адреса в сценарии электронной почты, он используется для отправки уведомлений моим клиентам.
Мой сервер поставляется с 5 IP-адресами, поэтому я создал массив IP-адресов, и при отправке IP-адрес менялся случайным образом, в этот массив я не включаю IP-адрес основного сервера.
Это работало нормально до декабря прошлого года, я не вносил никаких изменений и не обновлял (я не уверен, было ли это автоматически)
Вот сценарий:
$iparray = array(
'163.xx.217.xx',
'164.xx.217.xx',
);
$ips = $iparray;
$keyip = array_rand($ips);
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "none";
$mail->Host = $ips[$keyip];
$mail->Port = 26;
$mail->AddAddress($recipient);
$mail->Username=$senderemail;
$mail->Password=$senderpass;
$mail->SetFrom($senderemail,$sendername);
$mail->AddReplyTo($senderemail,$sendername);
$mail->AddBCC('[email protected]');
$mail->Subject = 'the subject';
$mail->MsgHTML('the message);
Обратите внимание, что $mail->Host был случайно выбранным IP-адресом из массива, при проверке полученного сообщения я получал это:
spf=pass (google.com: domain of [email protected] designates 163.xx.217.xx as permitted sender) [email protected]
Однако с декабря проверка SPF производится на основном IP сервера, а не на любом из выделенных IP в массиве, чего я не хочу.
Это работало правильно, но внезапно все изменилось, может быть, это серверы Gmail? Может что-то настроить на сервере?
Для отправки писем я использую Exim, установленный на сервере Centos, управляемый через WHM.
Я не пытаюсь подделать какой-либо адрес, все IP-адреса мои, мне просто нужно убедиться, что они чередуются при каждом отправленном электронном письме, и я мог бы это сделать, но теперь я не уверен, что нужно изменить, чтобы он снова работал.
Спасибо за вашу помощь