Chinaunix

标题: perl如何通过代理发邮件 [打印本页]

作者: fikong2005    时间: 2011-04-08 17:45
标题: perl如何通过代理发邮件
目前想做一个短信监控功能,刚好139邮箱支持邮件达到通知,因此只要能用perl发邮件即可,在网上拷贝了一段代码,已经在本机测试能发邮件了,但是正式环境是通过代理上网的,通过代理我就不知道该如何处理,请各位大虾支招,谢谢!最好附上核心代码
作者: zuerrong    时间: 2011-04-08 19:46
目前想做一个短信监控功能,刚好139邮箱支持邮件达到通知,因此只要能用perl发邮件即可,在网上拷贝了一段代 ...
fikong2005 发表于 2011-04-08 17:45



   要有一个SMTP Relay作为发信网关,然后就是Net::SMTP连网关发信了,无其他特殊。
用Postfix很容易就配置一个SMTP Relay。

注:真正的SMTP代理实现很复杂,不清楚有无开源软件,我知道的都是商业产品。
所以你只需配置一个普通的SMTP Relay就可以了。
作者: fikong2005    时间: 2011-04-08 22:41
谢谢斑竹,根据你的提示,我先查查相关资料,不懂再请教您,谢谢!
作者: fixsmall    时间: 2011-04-18 22:04
你得有一个可以发送邮件的服务器,比如 sendmail 或者通过 smtp代理来发送。

我有个小应用就是perl查询数据库发送邮件的,用的是 use Mail::Sender;  

发邮件部分:
$Mail::Sender::NO_X_MAILER = 1;
            open my $DEBUG , ">> /tmp/mail.log";
            my $sender = new Mail::Sender({smtp=>'localhost', from=>$em_conf{'from'}, charset=>'UTF-8'});
            ( ref ( $sender->MailMsg({
                    to=> $em_conf{'to'},
                    cc=> $em_conf{'cc'},
                    subject=>'有新消息',
                    msg=> $head,
                    debug=>$DEBUG }) )
               and print "send ok !\n" )
            or print $Mail::Sender::Error ;
            $sender->Close();

本地的 sendmail服务器,不用担心是不是在内网,我本机的也可以往外发邮件,不过大多数邮箱会把他扔到垃圾邮件里,不知道为什么,只能加入白名单才行。
作者: 朽木可雕    时间: 2014-03-03 15:04
解决了吗?我也碰到类似问题。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2