配置 CentOS 系统下的 GAMIT 解算完成后自动发送邮件

 

1. 修改解算配置

使用 GAMIT/GLOBK 程序进行自动批处理时,是可以实现让软件处理完成之后发送电子邮件功能的。但是很多朋友都表示没有收到过邮件。那是因为 GAMIT 是调用 mail 或 mailx 命令来实现自动发邮件的,你很可能没有正确配置这个命令。

我最近在 CentOS 下实现了 GAMIT 在数据处理完成后下自动发邮件。下面总结下我的配置过程,以供大家参考。

首先,我是在 CentOS 6.5 操作系统下做如下配置的。CentOS 的优点是它默认就安装了 mailx 程序。实际上,只要你的 mailx 程序配置好了,GAMIT 就自然能够给你顺利地发邮件了。
修改工程文件夹中 tables 文件夹下的 GAMIT 的解算控制文件 proces.defaults 为:

#  Most machines
# set umail = 'mail -s'
#  HP
set umail = 'mailx -s'

对于 CentOS6.5 以上的系统而言,上面这一步修改不是必要的,因为使用 mail -s 命令实际上也是利用 mailx 程序的。

 

2. 测试mailx命令

有些系统默认并没有安装 mailx 程序,所以我们先测试一下自己电脑上 mailx 命令的可用性。在终端下使用命令:

mailx -s ‘Test Mailx' example@163.com

回车之后输入邮件的内容,输入完成后按 ctrl+d 结束输入并发送,给自己的邮箱发送一封邮件。
如果显示“command not found”,那么说明你的系统没有安装 mailx 程序,赶紧使用以下命令安装一下吧:

yum install mailx

安装之后重新执行上面的命令。如果接下来你收到邮件了(可能会在垃圾邮件箱),那么恭喜你,你在使用 sh_gamit 命令进行解算前直接在 process.defaults 文件里填写你的邮箱地址就可以收到 GAMIT 给你发送的邮件了。

 

3. 配置

如果你通过上面命令没有收到邮件的话。试试在终端执行命令:

mailx

你应该可以看到发送失败的邮件。就像这样:

这很可能是因为你的 IP 被误认为垃圾邮件来源了。需要把自己的 IP 地址从垃圾邮件 IP 黑名单里面去掉。
首先查看一下你的外网 IP,命令:

curl ifconfig.me

然后到这个网站(http://www.spamhaus.org/lookup/)输入你的 IP 地址查看你在不在黑名单里面。
如果查询结果如下图,那么说明你的 IP 已经被列入垃圾邮件源了,这将使大部分的公共邮箱服务(如网易邮箱,Gmail,Hotmail 等)拒收你的 IP 发送的电邮。解决办法当然是申请把自己的 IP 从黑名单移除啦。

首先点击图中最下面的链接,申请将自己的 IP 从 CBL 中移除。大概十几分钟之后生效。
然后申请将你的 IP 在 PBL 中移除(点击 PBL183882)。这个比较麻烦,需要填写一些东西。也是十几分钟之后生效。
生效之后再用 mailx -s 命令给自己发一封邮件试试,部分人设置到这里应该已经能够使用邮件服务了。

如果还不能成功的话可以考虑配置 mailx 程序使用外部 smtp 发邮件。这也是最后一种方案了,我就是这么做的。也就是说不用本机的邮件地址(user@localhost.localdomain),而是另外申请一个邮箱,通过这个邮箱来发邮件。这里建议使用网易邮箱,配置起来最方便快捷。
去网易邮箱给你跑 GAMIT 的电脑申请一个邮箱地址,比如 CentOSPC@163.com,密码 centos1234。下面以这个邮箱为例介绍配置方法。
注意不要用你自己工作或私人用的邮箱配置,因为下面你会看到其中的密码在 mailx 的配置文件中是明文保存的。

以管理员身份打开 /etc 文件夹下的 mail.rc 文件,在第6行开始添加以下字符:

#set for 163 smtp
setfrom = CentOSPC@163.com smtp = smtp.163.com
setsmtp-auth-user = CentOSPC smtp-auth-password = centos1234
set smtp-auth = login

保存之后就可以用 GAMIT 通过这个邮箱给你发邮件了,你可以再使用 mailx -s 命令试一下。为了该邮箱地址以后不会被当作垃圾邮件阻止,建议将其添加到你的邮箱联系人列表中。

 

posted @ 2016-08-12 14:50  purpleskyfall  阅读(192)  评论(0编辑  收藏  举报