热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Linux系统使用外部SMTP发邮件

至于sentmail和postfix的配置有多么麻烦老衲在这里就不多废话了...反正老衲是配置了N个小时,最终弄的头晕眼花也没弄好...下面的方法可以让你完全摆脱这两个工具...当然,你要是想做邮件服务器的话就令当别论了...你要是只想让服务器自动发个邮件什么的,用

至于sentmail和postfix的配置有多么麻烦老衲在这里就不多废话了...反正老衲是配置了N个小时,最终弄的头晕眼花也没弄好...

下面的方法可以让你完全摆脱这两个工具...当然,你要是想做邮件服务器的话就令当别论了...你要是只想让服务器自动发个邮件什么的,用下面的就行了

通常的做法都是,关闭本机的sendmail服务或者postfix服务,

#执行下面的命令,各位大侠都对号入座吧
#sendmial
service sendmail stop
chkconfig sendmail off
#postfix
service postfix stop
chkconfig postfix off
#再狠一点就直接卸载吧..
yum remove sendmail
yum remove postfix

然后修改/etc/mail.rc,增加一下类似N行,指定外部的smtp服务器地址、帐号密码等。

 # vi /etc/mail.rc
  set from=@qq.com
  set smtp=smtp.qq.com
  set smtp-auth-user=
  set smtp-auth-password=sbsbsbsb
  set smtp-auth=login

然后通过命令来发送邮件

echo  hello word | mail -s " title" @qq.com

可是发现在RHEL6运行是没有问题,在RHEL5下,mail命令始终是调用本地的sendmail服务来发送邮件的。

到底RHEL6和RHEL5下的mail和mailx又有着什么关系呢?

RHEL6下

mail  链接到 mailx 命令,mailx版本为12.4

# rpm -qa|grep mailx  

mailx-12.4-6.el6.x86_64  

# ll /bin/mail*     

lrwxrwxrwx. 1 root root      5  7月 22 2011 /bin/mail -> mailx  

-rwxr-xr-x. 1 root root 390424  2月 16 2010 /bin/mailx  

# mail -V  

12.4 7/29/08  

RHEL5下,则发现了一些不同

mailx  链接到  mail 命令,mailx版本为8.1

# rpm -qa|grep mailx  

mailx-8.1.1-44.2.2  

# ll /bin/mail*  

-rwxr-xr-x 1 root mail 84856 Jun  6  2007 /bin/mail  

lrwxrwxrwx 1 root root     4 Apr 12 18:03 /bin/mailx -> mail  

# mail -V     此处运行就会出错,没有-V这个参数  

也就是说,在RHEL6\5下,运行mail 和mailx,实际上都是一个命令,而mail版本不同,导致了RHEL5下mail命令无法调用外部SMTP服务器。

安装mailx新版本可解决此问题。

下载地址:

代开这个网站。自己选一个下载地址

 http://www.filewatcher.com/m/mailx-12.4.tar.bz2.271482.0.0.html

下载后

 # tar jxvf mailx-12.4.tar.bz2
 # cd mailx-12.4
 # make
 # make install UCBINSTALL=/usr/bin/install

查看mailx程序默认安装位置、及版本

 # whereis mailx
 mailx: /usr/local/bin/mailx /usr/share/man/man1p/mailx.1p.gz
 # mailx -V
 12.4 //

安装后的mailx使用的是 /etc/nail.rc 配置,不是 /etc/mail.rc 这个需要注意下。vi编辑,按下G  ,然后在行尾添加如下N行

    # vi /etc/nail.rc  (看出亮点了吗?)
   set from=@qq.com
   set smtp=smtp.qq.com
   set smtp-auth-user=
   set smtp-auth-password=sbsbsbsb
   set smtp-auth=login

 然后通过命令来发送邮件

echo  hello word | mailx -v -s " title" @qq.com

就收到邮件了.... 哥比较懒,就不给你截图了...反正我是收到了。

成功发送的话,就可以看到类似的提示
  2.7. Authentication successful
 >>> MAIL FROM:
  2.1. Ok
 >>> RCPT TO:
  2.1. Ok
 >>> DATA
  End data with .
 >>> .
  2.0. Ok: queued as
 >>> QUIT
  2.0. Bye


推荐阅读
author-avatar
爷吃鸡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有