2 Stimmen

Verwendung des Socks5-Proxys mit Net::SMTP

Ich möchte Net::SMTP mit dynamischem Socks-Proxy verwenden. IO::Socket::Socks kennt Socken, aber wie sollte es mit net::smtp verwendet werden?

3voto

Juraj Punkte 850

Ich habe es herausgefunden, aber es beinhaltet einen Hack, der mit zukünftigen Versionen von Net::SMTP funktionieren kann oder auch nicht:

use Net::SMTP;
use Net::SOCKS;
my $socks = new Net::SOCKS(socks_addr=>$shost,socks_port=>$sport, protocol_version=>5) or die $!; 
my $socksfd = $socks->connect(peer_addr=>$smtp_server,peer_port=>25);
if(!$socksfd){
    die "Connection to SOCKS failed";
}
my $smtp = Net::SMTP->new_from_fd($socksfd->fileno, 'r+' ) or die $!;

#HACK: there is "220 host.domain.net" line we must read otherwise Net::SMTP would not work!
$smtp->getline();

$smtp->hello("localhost") or die $smtp->message();
#from here Net::SMTP business as usual...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X