gpt4 book ai didi

php - 在 PHPmailer 中设置原始 IP

转载 作者:行者123 更新时间:2023-12-02 17:12:32 25 4
gpt4 key购买 nike

我想在电子邮件脚本中轮换原始 IP 地址,它用于向我的客户发送通知。

我的服务器有 5 个 IP 地址,所以我创建了一个 IP 数组,在发送随机更改的 IP 地址时,在这个数组中我不包括主服务器 IP。

这在去年 12 月之前一直运行良好,我没有进行任何更改或更新(我不确定是否有自动更新)

这是脚本:

 $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('smtp@xxxxx.co');
$mail->Subject = 'the subject';
$mail->MsgHTML('the message);

注意 $mail->Host 是从数组中随机选择的 IP,在检查收到的消息时,我曾经得到这个:

spf=pass (google.com: domain of test@xxxxxxx.co designates 163.xx.217.xx as permitted sender) smtp.mailfrom=test@xxxxxxx.co

但是,自 12 月以来,SPF 检查是在服务器主 IP 上进行的,而不是阵列中任何选定的 IP,这是我不想要的。

这一切正常,但突然变了,会不会是 Gmail 服务器的问题?会不会是在服务器中配置的东西?

为了发送电子邮件,我使用安装在 Centos 服务器上并通过 WHM 管理的 Exim。

我不想欺骗任何地址,所有 IP 地址都是我的,我只需要确保它们在发送的每封电子邮件中轮换,我可以做到,但现在我不确定要更改什么才能使其再次工作.

谢谢你的帮助

最佳答案

绑定(bind)到 IP 发生在创建套接字时。您可以通过设置传递给 PHPMailer 的 SMTP 类中的 stream_context_create() 的选项来控制它:

$mail->SMTPOptions = [
'socket' => [
'bindto' => "$bound_ip:0",
],
];

其中 $bound_ip 是文字 IPv4/IPv6 地址,gethostbyname('your-domain.example') 等的结果。使用 0 for the port 允许系统正常选择端口。查看bindto docs了解更多信息。

关于php - 在 PHPmailer 中设置原始 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48311428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com