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

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

我需要从phpmailer 插件使用代理 IP 地址,我知道要做到这一点,我需要使用 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.0\r\nHost: $proxy\r\n\r\n");
    fgets($socket, 334);

    //SMTP authorization  
    fputs($socket, "AUTH LOGIN\r\n");
    fgets($socket, 334);

    fputs($socket, base64_encode($username)."\r\n");
    fgets($socket, 334);

    fputs($socket, base64_encode($password)."\r\n");
    $output = fgets($socket, 235);

    fputs($socket, "HELO $server \r\n"); 
    $output = fgets($socket, 515);

?>

但它不起作用我不确定为什么?

在这种情况下,命令能socat提供帮助吗?或者是否有任何解决方案或替代解决方案可以做到这一点?

先感谢您。

相关内容