Linux下配置mail使用外部SMTP发送邮件

时间:2022-12-27 18:15:17

修改/etc/mail.rc,增加两行:指定外部的smtp服务器地址、帐号密码等。
  
  # vi /etc/mail.rc
  set from=demo@qq.com smtp=smtp.qq.com
  set smtp-auth-user=demo smtp-auth-password=ithf smtp-auth=login
  
  然后通过命令来发送邮件
  echo hello word | mail -s "demo title" demo@qq.com
  可是发现在RHEL6运行是没有问题,在RHEL5下,mail命令始终是调用本地的sendmail服务来发送邮件的。到底RHEL6和RHEL5下的mail和mailx又有着什么关系呢?

以下是 RHEL6.0服务器的内容:
[root@XXXX log]# uname --version
uname (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是*软件:您可以*修改和重新发布它。
在法律范围内没有其他保证。

由David MacKenzie 编写。
[root@XXXX log]# uname -a
Linux XXXX.com 2.6.32-71.el6.i686 #1 SMP Wed Sep 1 01:26:34 EDT 2010 i686 i686 i386 GNU/Linux
[root@XXXX log]# cd /bin
[root@XXXX bin]# ls -l mail*
lrwxrwxrwx. 1 root root 5 5月 19 2011 mail -> mailx
-rwxr-xr-x 1 root root 374932 2月 16 2010 mailx
[root@XXXX bin]# mail -V
12.4 7/29/08
[root@XXXX mfg]# rpm -qa|grep mail
mailx-12.4-6.el6.i686
procmail-3.22-25.1.el6.i686
sendmail-cf-8.14.4-8.el6.noarch
mailcap-2.1.31-1.1.el6.noarch
sendmail-8.14.4-8.el6.i686
fetchmail-6.3.17-1.el6.i686


以下是 RHEL5.0服务器的内容:
[mfg@XXXX bin]$ uname --version
uname (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
杩欐槸鑷敱杞欢銆傛偍鍙互鎸夌収 GNU GPL 鍗忚 <http://www.gnu.org/licenses
/gpl.html> 鐨勬潯娆惧啀鍙戝竷姝よ蒋浠剁殑鍓湰锛屼絾鎴戜滑鏃犳硶淇濊瘉珏叧娉曞?
嬩笉瀵硅繖涓€鎯呭舰杩闄愬埗銆?

鐢?David MacKenzie 缂栧啓銆?
[mfg@XXXX bin]$ uname -a
Linux XXXX 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:19 EDT 2007 x86_64 x86_64 x8
6_64 GNU/Linux
[mfg@XXXX bin]$ ls -l mail*
-rwxr-xr-x 1 root mail 84856 2006-07-13 mail
lrwxrwxrwx 1 root root 4 2008-11-11 mailx -> mail
[mfg@XXXX bin]$ mail -V
mail: invalid option -- V
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
[-- sendmail-options ...]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user]
[mfg@XXXX bin]$ rpm -qa|grep mail
fetchmail-6.3.6-1.1.el5
sendmail-cf-8.13.8-2.el5
procmail-3.22-17.1
mailcap-2.1.23-1.fc6
mailx-8.1.1-44.2.2
sendmail-8.13.8-2.el5

在RHEL6\5下,运行mail 和mailx,实际上都是一个命令

Linux 5级以下的版本mail默认使用sendmail发送邮件,关闭sendmail之后将无法发送

而Linux 6中如果在/etc/mail.rc中配置了外部SMTP等信息,则可以使用外部邮箱发送邮件

他们主要区别是使用mailx的版本不一样.Linux 6使用mailx 版本mailx-12.4-6.el6.x86_64,而Linux 5使用mailx版本mailx-8.1.1-44.2.2 。

故为了让linux 5在关闭sendmail的情况下,使用外部SMTP发送mail,需要在Linux5上安装mailx-12.4-6.el6.x86_64.