Мне нужно отправлять электронные письма с 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 помочь в этой ситуации или есть какое-либо решение или альтернативное решение для этого?

Заранее спасибо.

0