Мне нужно отправить электронную почту от PHPMailer с использованием прокси IP адресов, я знаю, что делать, мне нужно использовать fsockopen функцию, так что я могу подключиться к SMTP счета, я также знайте, что если мне нужно подключиться к прокси-серверу, я снова должен использовать функцию fsockopen. Но использование fsockopen внутри другого fsockopen не выполнимо.Отправка писем от PHPMailer с использованием прокси-серверов IP-адресов
У меня есть прозрачный прокси-сервер и не требует аутентификации. Мне нужно отправить это на удаленный 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
помочь в этой ситуации или есть ли решение или альтернативное решение для этого?
Спасибо @Synchro за ваш быстрый повтор, не уверен, как я могу использовать SOL в этой ситуации, пожалуйста, добавьте пример, если сможете. (проверьте мое обновление). –
Ум, я не думаю, что вы знаете [что означает SOL] (http://onlineslangdictionary.com/meaning-definition-of/sol) ... Извините! – Synchro
Когда у вас есть прокси-сервер, вы не разговариваете с конечным сервером напрямую (как вы пытаетесь сделать). Вы подключаетесь к прокси-серверу и отправляете ему команды *, как будто * вы разговаривали с реальным сервером. Прокси-сервер передает команды на целевой сервер и передает ответы обратно вам. В системах, которые поддерживают прокси-серверы, вы обычно устанавливаете соединение с прокси-сервером и проходите по цели, которую вы действительно хотите подключить, в качестве дополнительной оболочки вокруг любого протокола, о котором вы говорите. PHP не поддерживает SMTP-прокси, а только HTTP, поэтому вам нужно будет свернуть собственный прокси-код или найти прокси-библиотеку. – Synchro