perl - 将socks5代理与Net::SMTP一起使用

标签 perl smtp socks

我想将 Net::SMTP 与动态 socks 代理一起使用。 IO::Socket::Socks 可以识别 socks ,但是它应该如何与 net::smtp 一起使用?

最佳答案

我明白了,但它包含一些 hack,可能会或可能不会与 Net::SMTP 的 future 版本一起工作:

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...

关于perl - 将socks5代理与Net::SMTP一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253360/

相关文章:

c - 使用套接字通过C中的SOCKS5代理服务器发送请求

perl - 只从 perl 中的列表中获取某些值

language-agnostic - 编写一个简单的电子邮件服务器

C# HttpClient tor socks4/5 代理?

java - 用于代理的 jsocks 库

amazon-web-services - 无法通过 AWS EC2 远程登录到端口 25 上的 SMTP(MTA) 服务器

java - 复制一个文件或多个文件形成一个 zip 文件,而无需使用 perl 或 java 实际解压缩它

perl - 流中文件的 MD5。珀尔

perl - 为什么 Perl 脚本从 YouTube 服务器获取 '429 Too many requests',而 Web 浏览器加载网页正常

html - 在 Delphi 中发送带附件的电子邮件