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'# HPset 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 smtpsetfrom = CentOSPC@163.com smtp = smtp.163.comsetsmtp-auth-user = CentOSPC smtp-auth-password = centos1234set smtp-auth = login
保存之后就可以用 GAMIT 通过这个邮箱给你发邮件了,你可以再使用 mailx -s 命令试一下。为了该邮箱地址以后不会被当作垃圾邮件阻止,建议将其添加到你的邮箱联系人列表中。