加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用代理IP地址从PHPMailer发送电子邮件

发布时间:2020-12-13 13:21:29 所属栏目:PHP教程 来源:网络整理
导读:我需要使用代理IP地址从 PHPMailer发送电子邮件,我知道这样做,我需要使用fsockopen函数,所以我可以连接到SMTP帐户,我也知道如果我必须连接到代理我必须再次使用fsockopen函数.但是在另一个fsockopen中使用它fsockopen是不可行的. 我有透明代理,不需要身份验
我需要使用代理IP地址从 PHPMailer发送电子邮件,我知道这样做,我需要使用fsockopen函数,所以我可以连接到SMTP帐户,我也知道如果我必须连接到代理我必须再次使用fsockopen函数.但是在另一个fsockopen中使用它fsockopen是不可行的.

我有透明代理,不需要身份验证.我需要将其发送到外部电子邮件服务提供商的远程SMTP服务器.

我试过的代码:

<?php

    //SMTP params
    $server      = 'smtp.espdomain.com';
    $server_port = '25';
    $username = 'smtp_login';
    $password = 'smtp_pass';

    //Proxy
    $proxy      = '1.1.1.1';
    $proxy_port = 1111;

    //Open connection
    $socket = fsockopen($proxy,$proxy_port);

    //Send command to proxy
    fputs($socket,"CONNECT $server:$server_port HTTP/1.0rnHost: $proxyrnrn");
    fgets($socket,334);

    //SMTP authorization  
    fputs($socket,"AUTH LOGINrn");
    fgets($socket,334);

    fputs($socket,base64_encode($username)."rn");
    fgets($socket,base64_encode($password)."rn");
    $output = fgets($socket,235);

    fputs($socket,"HELO $server rn"); 
    $output = fgets($socket,515);

?>

它不起作用我不知道为什么?

socat命令可以帮助解决这种情况,还是有任何解决方案或替代解决方案来实现这一目标?

我终于找到了使用 socat的解决方案,请按照以下步骤操作:

>首先,您需要在服务器上安装socat,只需使用以下命令即可:

yum install socat

>然后运行以下将使用HOST_ESP绑定PROXY_IP:PORT的socat命令:PORT:

socat TCP4-LISTEN:proxy_port,bind=proxy_IP,fork,su=nobody TCP4:host:port,bind=proxy_IP

>然后不是通过HOST_ESP:PORT发送到ESP,而是使用PROXY_IP:PORT,而socat将使用PROXY_IP:PORT的输出自动重定向到HOST_ESP:PORT.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读