首页 > 代码库 > Smokeping 使用外部邮箱发送告警邮件
Smokeping 使用外部邮箱发送告警邮件
Smokeping 发送告警邮件
转自:http://www.humen1.net/2013/11/669
smokeping 默认用sendmail发邮件,这样不好。
改了一下源码 这样可以使用 我QQ的smtp server来发告警邮件了
首先需要安装 Authen::SASL 模块(auth 需要用的) 我用CPAN装的,不细说了
修改 smokeping/lib/Smokeping.pm
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #头上加 use Authen::SASL; #定位到sendmail函数,改成下面这样 sub sendmail ($$$){ my $from = shift ; my $to = shift ; $to = $1 if $to =~ /<(.*?)>/; my $body = shift ; if ( $cfg ->;{General}{mailhost} and my $smtp = Net::SMTP->new([ split /\s*,\s*/, $cfg ->{General}{mailhost}], Timeout =>5) ){ $smtp ->auth( split (/\s*,\s*/, $cfg ->{General}{mailusr}), split (/\s*,\s*/, $cfg ->{General}{mailpwd})); $smtp ->mail( $from ); $smtp ->to( split (/\s*,\s*/, $to )); $smtp ->data(); $smtp ->datasend( $body ); $smtp ->dataend(); $smtp ->quit; } elsif ( $cfg ->{General}{sendmail} or -x "/usr/lib/sendmail" ){ open (M, "|-" ) || exec (( $cfg ->{General}{sendmail} || "/usr/lib/sendmail" ), "-f" , $from , $to ); print M $body ; close M; } else { warn "ERROR: not sending mail to $to, as all methodes failed\n" ; } } #找到 ‘_vars =>‘ ,把 mailusr mailpwd 加进去。不然不能启动哦!General configuration values valid for the whole SmokePing setup. DOC _vars => [ qw(owner imgcache imgurl datadir dyndir pagedir piddir sendmail offset smokemail cgiurl mailhost mailusr mailpwd snpphost contact display_name syslogfacility syslogpriority concurrentprobes changeprocessnames tmail changecgiprogramname linkstyle precreateperms ) ], |
然后修改配置文件
/etc/config
1 2 3 4 5 6 7 | mailhost = smtp. qq.com mailusr = noreply@qq. com<script type= "text/javascript" > /* <![CDATA[ */ (function(){ try {var s,a,i,j,r,c,l,b=document.getElementsByTagName( "script" );l=b[b. length -1].previousSibling;a=l.getAttribute( ‘data-cfemail‘ ); if (a){s= ‘‘ ;r=parseInt(a. substr (0,2),16); for (j=2;a. length -j;j+=2){c=parseInt(a. substr (j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}} catch (e){}})(); /* ]]> */ </script> mailpwd = xxxxxxxxx |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。