Devo inviare e-mail da PHPMailer utilizzando i proxy indirizzi IP, so che per farlo, ho bisogno di utilizzare la funzione fsockopen così posso connettermi all'account SMTP, anch'io sappi che se devo collegarmi al proxy devo usare di nuovo la funzione fsockopen. Ma usarlo fsockopen all'interno di un altro fsockopen non è fattibile.Invio di email da PHPMailer utilizzando i proxy Indirizzi IP
Ho proxy trasparente e non richiede autenticazione. Devo inviarlo a un server SMTP remoto di un provider di servizi di posta elettronica esterno.
Il codice che ho provato:
<?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);
?>
E non funziona io non sono sicuro perché?
I comandi socat
possono aiutare in questa situazione o esiste una soluzione o una soluzione alternativa per raggiungere tale obiettivo?
Grazie a @Synchro per la riproduzione rapida, non sono sicuro di come potrei usare SOL in questa situazione, per favore aggiungi un esempio se puoi. (controlla il mio aggiornamento). –
Um, non penso che tu sappia [cosa significa SOL] (http://onlineslangdictionary.com/meaning-definition-of/sol) ... Ci scusiamo! – Synchro
Quando si ha un proxy, non si parla direttamente al server finale (come si sta tentando di fare). Ti connetti al proxy e invii comandi ad esso * come se * stavi parlando al server reale. Il proxy inoltra i comandi al server di destinazione e restituisce le risposte all'utente. Nei sistemi che supportano i proxy, si stabilisce normalmente la connessione al proxy e si passa il target a cui si desidera realmente connettersi come un ulteriore wrapper attorno a qualunque protocollo si stia parlando. PHP non ha il supporto proxy SMTP, solo HTTP, quindi è necessario eseguire il rollover del proprio codice proxy o trovare una libreria proxy. – Synchro