在使用GAMIT/GLOBK软件进行自动批处理时,是可以实现让软件处理完成之后发送电子邮件功能的。但是很多朋友都表示没有收到过邮件。那是因为GAMIT是调用mailx程序来自动发邮件的。在process.defaults文件下面可以看到如下字符:
# Most machines
set umail = 'mail -s'
# HP
# set umail = 'mailx-s'
我最近在CentOS下实现了CentOS下自动发邮件。下面总结下我的配置过程,以后大家可以参考。当抛砖引玉吧,呵呵。
首先,我是在CentOS 6.5操作系统下做如下配置的。CentOS的优点是它默认就安装了mailx程序。实际上,只要你的mailx程序配置好了,GAMIT就自然能够给你顺利地发邮件了。
修改GAMIT的解算控制文件proces.defaults为:
# Most machines
# set umail = 'mail -s'
# HP
set umail = 'mailx -s'
对于CentOS6.5以上的版本而言,上面这一步修改没必要,因为使用mail -s 命令实际上也是利用mailx程序的。
测试一下你的mailx
在终端下使用命令:
mailx -s '邮件主题' 收件人地址 #回车之后输入邮件的内容,按ctrl+d结束输入并发送。
给自己的邮箱发送一封邮件。如果显示“command not found”,那么说明你没有安装mailx程序,赶紧使用命令:
yum install mailx
安装mailx吧。
安装好之后重新执行上面的命令。如果接下来你收到邮件了,那么恭喜你(可能会在垃圾邮件箱),你直接在process.defaults文件里填写你的邮箱地址就可以收到GAMIT给你发的邮件。
配置
如果你通过上面命令没有收到邮件的话。试试在终端执行命令:
mailx
你应该可以看到发送失败的邮件。就像这样:
这很可能是因为你的IP被误认为垃圾邮件来源了。需要把自己的IP地址从垃圾邮件IP黑名单里面去掉。
首先查看你的外网IP地址,命令:
curl ifconfig.me
然后到这个网站输入你的IP地址查看你在不在黑名单里面。
如果查询结果如图,那么说明你的IP已经被列入垃圾邮件源了,这将使大部分的公共邮箱服务(如网易邮箱,Gmail,Hotmail等)拒收你的IP发送的电邮。解决办法当然是申请把自己的IP从黑名单移除啦。
首先点击图中最下面的链接,申请将自己的IP从CBL中移除,点击新打开的页面最下面的链接就好啦。大概十几分钟之后生效。
然后是申请在PBL中移除(点击PBL183882)。这个比较麻烦,需要填写一些东西。也是十几分钟之后生效。
生效之后再用 mailx -s 命令给自己发一封邮件试试。部分人设置到这里应该已经能够使用邮件服务了。
如果还不能成功的话就用外部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通过这个邮箱给你发邮件了。
-------------------------------2014/10/28更新分割------------------------------------
用Ubuntu的小伙伴可以先安装msmtp软件和mailx。执行:
sudo apt-get install msmtp
sudo apt-get install bsd-mailx
安装之后就可以使用mailx程序了。但是还发不出邮件。
可以试试下面这个网站配置mailx和msmtp的方法。具体需要探索,但我觉得应该能成功的。没有具体试过,只是作为一种思路吧。