linux用外部邮箱发送邮件

来源:互联网 发布:哑铃健身大全软件 编辑:程序博客网 时间:2024/06/07 07:17

1.mailx的安装和使用

一般在contos5.几的版本装的一般是mailx-8的版本,但是这个版本太低,好像是不支持smtp,所以卸载了他,再装上新版本mailx-12

有时为了达到某种需求统一使用某一SMTP服务器作为发送邮件报告。

  通常的做法都是,关闭本机的sendmail服务,修改/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下

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

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

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

  下载最新版本mailx-12.4.tar.bz2 (271.5 kB)    http://sourceforge.net/projects/heirloom/files/latest/download?source=files

  解压、安装。下载的压缩包里有安装说明(见INSTALL 文件)。默认安装是make ; make install

  同时安装说明也说了,如果make install 出错,则换为 make install UCBINSTALL=/usr/bin/install命令试试。

  命令:

  # tar jxvf mailx-12.4.tar.bz2

  # cd mailx-12.4

  # make

  # make install UCBINSTALL=/usr/bin/install

然后在/etc/nail.rc的最后加上以一几句

set from=xuexishiyan@163.com
set smtp=smtp.163.com
set smtp-auth-user=xuexishiyan@163.com
set smtp-auth-password=1233234
set smtp-auth=login

然后用测试下

mailx -v -s "tes88t" lhyraoqin@163.com < a.txt

2.php中利用mailx,利用外部邮箱发送邮件

在php的配置文件php.ini中的一行原始为

;sendmail_path =

我们改一下,去掉前面的分号,来调用刚刚安装好的mailx(关于mailx的路径可以用命令获得:which mailx )

sendmail_path = /usr/local/bin/mailx -t -i

(一般以前人们都用sendmail来做的,但是在linux下sendmail太麻烦,sendmail_path =/usr/sbin/sendmail -t -i)

然后在php编写一个脚本测试一下发送邮件的

<?php    header("content-type:text/html;charset=utf-8");    //-----    //$conn = new mysqli('localhost', 'banzhang', '13233697713', 'myclass');    //$result = $conn->query("set names 'utf8'");    $to = "lhyraoqin@163.com";    $title = "the  title mesg";    $mseg = "the mesg is : haha";    $fujia = "fu jia de";    if( mail($to, $title, $mseg, $fujia) )    {        echo "send ok <br />";    }    else    {        echo "send error <br />";    }?>







0 0
原创粉丝点击