如何解决如何实现侦听新邮件然后执行操作的脚本
|| 我有一个Apache James邮件服务器设置程序,我想创建一个脚本来侦听新邮件,然后与Asterisk服务器通信以拨打用户电话号码并阅读消息。我认为这是可能的,但找不到任何信息。我一直在使用perl脚本执行其他任务,因此,如果我可以使用perl做到这一点,那将很棒。 提前致谢解决方法
一种解决方案是设置一个cron作业以运行一个Perl脚本,该脚本使用诸如“ 0”之类的内容来检查新消息,并使用(也许)以“ 1”之类的内容将其发送至Asterisk。如果CPAN模块无法满足您的需求,则始终可以让perl脚本执行“ 2”调用,以与能够检查POP或与Asterisk进行交互的命令行工具进行交互。
,我想最好的方法是用Java编写Mailet并将其放入配置中,以使其侦听根处理器中的所有邮件。
对于Apache James 3.0-beta5,步骤如下:
写邮件,即:
import org.apache.mailet.*;
public class myMailet extends GenericMailet {
private String aParameter;
@Override
public void init(MailetConfig cfg) throws MessagingException {
super.init(cfg);
aParameter = getInitParameter(\"myNeatParameter\"); // use this if you need to use some parameters specified inside the mailetcontainer.xml
}
@Override
public void service(Mail email) throws MessagingException {
doYourThingWith(email);
}
private void doYourThingWith(Mail email){
// TODO something with the email
}
}
将Mailet构建到jar文件中
将生成的jar文件添加到/ conf / lib文件夹
编辑/conf/mailetcontainer.xml文件,在其中添加以下内容:
<mailet match=\"All\" class=\"myMailet\">
<myNeatParameter>some value</myNeatParameter>
</mailet>
作为根处理器的子元素(或您认为合适的任何元素)。
重新启动詹姆斯
嗯,这不是脚本,但是它是非常好的(即使不是最好的)解决方案。
,您可以使用Mail :: POP3Client轮询邮箱中的消息。或者,如果邮箱支持IMAP,并且您想继续对其进行监视,请使用IMAP模块,也许是Net :: IMAP :: Simple?
我只是在Google搜索[Asterisk Perl],然后在第一页上找到了一个名为“如何编写Perl AGI应用程序”的指南。它描述了如何使用Asterisk :: AGI模块通过Perl连接到Asterisk服务器。
最后,您将需要一个文本语音转换应用程序。我确定其中有很多可用。它们可能不会用Perl编写,但是可能已有用于它们的Perl接口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。