procmail + kdialog 构建邮件提醒脚本

Mutt真的是神器,越用越觉得爽。 可惜命令行模式的工具都有个弊端:跟X交互能力比较弱, 例如Mutt就木有邮件提醒功能。

之前在Gnome2的年代里还有 mail-notification 可以对付用(这玩意占用系统资源狂多,似乎是通过监视文件更改来提醒的), 在Gnome3之后这个工具就完全不工作了,而且又没有后续版本。

青蛙抛弃Gnome,换成KDE之后,也没有找到KDE下的邮件提醒工具,于是一直酝酿着自己写一个。

实现邮件提醒功能,无非就是监控邮箱变更,可以在几个点检查:

  • 直接使用POP/IMAP协议检查服务器端
  • 监视MTA动作
  • 监视MDA动作
  • 监视MUA动作
  • 监视邮箱文件/目录更改

直接访问服务器是最直接的办法,但是既然MTA都把邮件收下来了, 再去监视服务器就有点绕腾了,这种方法监视gmail/hotmail之类的邮箱还是很不错的。

监视MUA的动作, adam8157同学 就是这么做的, 监视Mutt startusbar的特殊字符串,通过Mutt的filter发送notify消息。

监视邮箱文件/目录变化就是 mail-notification 的做法了,但是如果不想轮询的话,大概需要内核开启inotify支持。

监视MTA动作,青蛙没有仔细研究,似乎还是需要MDA的某些行为处理, 所以青蛙直接用了在MDA里加入提醒脚本的方法。

监视MDA动作,就是青蛙的做法 …

more ...

配置wordpress的邮件发送功能

青蛙继续倒腾vps,今天的主题是调教wordpress发送邮件。

之前在Dreamhost上面,邮件系统已经配置好了,wordpress不需要任何设置就可以直接发送邮件。 到了vps上之后,青蛙为了节省资源,没有安装邮件服务器,所以想要发送邮件,还需要自己折腾。

青蛙首先是想到了配置一个轻量级的MTA,例如msmtp之类的, 然后修改php.ini的sendmail_path参数,使它指向msmtp。 这样php程序就具有邮件发送能力了,但是这样产生的问题就是邮件的发送服务器是固定的, 而且需要配置一个帐号来做登录服务器,如果某个用户希望使用自己的服务器发送某些邮件, 这样配置就无法实现了。

为了实现完美的解决方案,青蛙又搜了一圈,发现了wordpress已经集成了一个PHPMailer[1]类, 并且提供了一个wp_mail函数[2]来发送邮件, 有很多设置SMTP的插件[3]方便我们配置SMTP服务器和外发邮件帐号信息。

青蛙选择了WP Mail SMTP插件,非常简单,把所有参数填好,wordpress就可以发送邮件了。

参考资料:

[1] PHPMailer http://phpmailer.worxware.com/

[2] Function Reference/wp_mail http://codex …

more ...