为extmail增加邮件短信通知功能

简介:

extmail本身预留了短信提醒的接口,但代码基本没写,于是,花了点时间,实现了收到邮件后短信提示的功能,实现方法大致如下:

1、extmail/html/default/filter.html 文件中MAIL2SMS选项卡部分修改为:

 

    (因草稿中丢失格式,暂时不确定原来的内容,看说明部分,目的是增加一个接收手机号码的文本框。)

 

   

 checked>

 

*说明:在WEBMAIL后台增加一个接收手机号码的输入框。这个手机号码对应变量mail2smsNum

2、extmail/lang/zh_CN 文件中修改一下字符模板,修改”mail2sms”一行,增加”mail2sms_num_error”一行:

mail2sms => ‘启用邮件到达提醒。 手机号码:’,
mail2sms_num_error => ‘输入的用于短信通知的手机号码非法,请重试’,

*说明:可再按此方法处理繁体及英文字符配置文件,”mail2sms_num_error”是在输入的手机号码非法后提供错误反馈用,也可以不做处理。

3、/etc/maildroprc增加发送手机短信的脚本命令:

MAIL2SMS=”/var/www/extsuite/extmail/tools/sendsms.sh”

*说明:具体路径可自己定义,但要注意执行权限

4、增加发送手机短信的脚本,sendsms.sh:

#!/bin/sh
sendsms()
{
;
#发送脚本,可用curl处理
}
#加入其他判断
sendsms “$2″ “$3″;

5、修改extmail/libs/Ext/App/Filter.pm:

第一处,sub extension_list中:
#datahf.net zhangyu edit
my $mail2smsNum = $obj->{mail2smsNum};

MAIL2SMS_NUM => $mail2smsNum,
#end

第二处,extension_mgr中:
if ($q->cgi(‘mail2sms’)) {
$obj->{mail2sms} = 1;
#datahf.net zhangyu edit
my $telnum = $q->cgi(‘mail2smsNum’);
if (!$telnum or $telnum !~ /^1\d{10}$/) {
$self->error($lang_filter{mail2sms_num_error});
return;
}
$obj->{mail2smsNum} = $telnum;
} else {
$obj->{mail2sms} = 0;
$obj->{mail2smsNum} = ”;
}
#add end

6、修改extmail/libs/Ext/MailFilter.pm:

第一处:parse中:
my $mail2smsNum = 0;

elsif ($res =~ /^mail2sms: (.*)/) {
$mail2sms = 1;
$self->{mail2sms} = $mail2sms;
$mail2smsNum = $1;
$self->{mail2smsNum} = $mail2smsNum;
}

第二处,save中:
# datahf.net zhangyu add or edit
if ($self->{mail2sms}) {
$buf1 .= “#*mail2sms: $self->{mail2smsNum}\n”;
$buf1 .= “/^(From|Sender):(.*)/\n”;
$buf1 .= “FROMsms=`\$DECODER \”\$MATCH2\”`\n”;
$buf1 .= “FROMsmsADD=getaddr(\$FROMsms)\n”;
$buf1 .= “/^Subject:(.*)/\n”;
$buf1 .= “SUBJECTsms=`\$DECODER \”\$MATCH1\”`\n”;
$buf1 .= “CONTENT=\”收到来自\$FROMsmsADD的新邮件,标题为:\$SUBJECTsms\”\n”;
$buf1 .= “CONTENTgb=`echo \$CONTENT|iconv -f utf-8 -t gb2312`\n”;
$buf1 .= “TELnum=\”$self->{mail2smsNum}\”\n”;
$buf1 .= “`\$MAIL2SMS \$LOGNAME \$TELnum \”\$CONTENTgb\”`\n”;
$buf1 .= “\n”;
}
# end
#extmail的过滤器考虑的问题较为简单,比如一旦加入白名单,便不会后续的过滤了,还有一些小问题,因改动太大,暂且如此。

7、登陆webmail后启用一下短信提示功能,同时输入合法的手机号码(11位以1开头的数字序列),保存即可。





本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/526430,如需转载请自行联系原作者
目录
相关文章
|
14天前
|
监控 前端开发
Zabbix使用外部邮箱服务器发送邮件报警
Zabbix使用外部邮箱服务器发送邮件报警
|
12月前
|
SQL 关系型数据库 MySQL
独角数卡 搭建-邮件配置-Epusdt配置-收U详细配置
独角数卡 搭建-邮件配置-Epusdt配置-收U详细配置
1313 0
|
存储 安全 数据库
可在线接收验证短信的网站
现代社会中大多数人容易忘记密码,因此,为了方便,各大网站或者APP就相继出现以手机号码进行短信验证来注册和登录等操作。但此时,大多个人手机号码都已经是实名认证的,就非常怕存在个人信息泄露的情况。近几年网络平台用户数据泄露事件层出不穷,勿论一般平台,甚至一些全球知名企业也曾被曝出用户数据泄露问题,那基于此我们用户又能做点什么呢? 那么临时的在线免费短信接收验证码的网站就应运而生。
800 0
可在线接收验证短信的网站
|
XML 数据格式 网络协议