linux使用mail发送外部smtp邮件

说明:
linux自带的mail可以实现外部smtp发邮件。不需要本地配置postfix,sendmail邮件服务器,配置整套下来确实需要点时间。

实现:
1.关闭本机的sendmail服务或者postfix服务

 代码如下 复制代码

sendmail
# service sendmail stop
# chkconfig sendmail off

postfix
# service postfix stop
# chkconfig postfix off 

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

 代码如下 复制代码
# cp /etc/mail.rc /etc/mailrc.bak.20131113
# cat /etc/mail.rc  //内容如下
set from=123456@qq.com
set smtp=smtp.qq.com 
set smtp-auth-user=123456
set smtp-auth-password=sbsbsbsb
set smtp-auth=login

3.然后通过命令来发送邮件

 代码如下 复制代码
# echo  hello word | mail -s " title" 123456@qq.com  

RHEL6下发送邮件没有问题。但RHEL5下,一直没办法发送。这是为什么呢?可以先看下RHEL6和RHEL5下mail和mailx的不同
RHEL6下

 代码如下 复制代码
# rpm -qa|grep mailx 
mailx-12.4-6.el6.x86_64 
# ll /bin/mail*  //mail链接到mailx,mailx版本为12.4
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下,则发现了一些不同

 代码如下 复制代码
# rpm -qa|grep mailx 
mailx-8.1.1-44.2.2 
# ll /bin/mail*  //mailx链接到mail命令,mailx版本为8.1
-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这个参数  也就是说,在RHEL65下,运行mail和mailx,实际上都是一个命令,而mail版本不同,导致了RHEL5下mail命令无法调用外部SMTP服务器。因此安装mailx新版本可以解决此问题。

1.RHEL5安装新版本mailx

 代码如下 复制代码
# wget ftp://ftp.spline.inf.fu-berlin.de/pub/gentoo/distfiles/mailx-12.4.tar.bz2  //下载mailx-12.4.tar.bz2,更多下载地址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
# whereis mailx  //查看mailx程序默认安装位置、及版本
 mailx: /usr/local/bin/mailx /usr/share/man/man1p/mailx.1p.gz 
# mailx -V 

 12.4 7/29/08 
2.修改/etc/nail.rc,安装后的mailx使用的是/etc/nail.rc而不是/etc/mail.rc。这个需要注意下!!!

 代码如下 复制代码
# vi /etc/nail.rc  //在行尾添加如下行
set from=123456@qq.com
set smtp=smtp.qq.com 
set smtp-auth-user=123456
set smtp-auth-password=sbsbsbsb
set smtp-auth=login  

2.然后通过命令来发送邮件

 代码如下 复制代码

# echo  hello word | mailx -v -s " title" 123456@qq.com   //成功发送的话,就可以看到类似的提示
 235 2.7.0 Authentication successful 
 >>> MAIL FROM:<demo@qq.com> 
 250 2.1.0 Ok 
 >>> RCPT TO:<xxxxx@qq.com> 
 250 2.1.5 Ok 
 >>> DATA 
 354 End data with <CR><LF>.<CR><LF> 
 >>> . 
 250 2.0.0 Ok: queued as 9291963494 
 >>> QUIT 
 221 2.0.0 Bye 

时间: 2024-10-28 03:40:06

linux使用mail发送外部smtp邮件的相关文章

C# SMTP邮件发送

邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: 001 using System; 002 using System.Net; 003 using System.Net.Mail; 004 using System.Text; 005   006 namespace HC.Email 007 { 008     /// <summary> 0

Linux系统下使用mail发送Internet邮件的配置方法

  用惯了windows系统的用户可能一开始对linux系统掌握不好,很多功能可能用起来不是很习惯.本文就介绍了linux系统的一个小应用:在Linux系统下使用mail发送Internet邮件.不过在介绍mail之前先来看一下先来看一下sendmail服务. Red Hat上sendmail服务一般是自动启动的.可以通过下面的命令查看sendmail服务的状态: service sendmail status 如果sendmail服务未启动可以使用如下命令启动: service sendmai

邮件-linux下mail命令怎么发送html?

问题描述 linux下mail命令怎么发送html? rt.在使用mail命令发邮件过程中,如何发送html类型的内容?网上找了半天都没有可以的,有没有大神能指点一二,跪谢!!! 解决方案 html内容也是字符串格式填充 解决方案二: mail不行,不能指定mimetype,你用linux的话可以试试用Perl脚本 http://bbs.chinaunix.net/thread-1855349-1-1.html 解决方案三: mail命令发送html格式的电子邮件

PHP Mail函数发送html格式邮件

windows系统下mail函数需要配置 1.从http://glob.com.au/sendmail/下载sendmail.zip 2.解压到C:下,例如C:\php\sendmail,最好短路径,长路径名有可能产生问题. 3.修改php.ini如下 sendmail_path = "C:\wamp\sendmail\sendmail.exe -t" 4.根据你自己的配置环境修改sendmail.ini. 第一次最好启用debug.log_file,error_logfile,以查看

用Java Mail发送带有图片附件的html格式邮件

用Java Mail发送带有图片的html格式的邮件,针对于显示图片,一般有两种方法. 1. 图片存在于服务器上,我们只需要把图片在服务器的的链接放进去即可. 这种发式比较简单,但是这种方法有些缺陷: 图片不支持离线浏览: 每次浏览邮件需要访问web服务,增加服务器负担: 若图片以二进制的方式存在于数据库或是动态生成的,则无法有效的解决. 2. 把图片以附件的方式发送出去,这种方式非常适用于图片存在于数据库中的情况. 本文也主要讨论这种情况. 对于Java Mail的基础知识,请看http://

smtp邮件发送一例

smtp邮件发送一例 test_smtp.php require("smtp.php"); $smtp=new smtp_class; $smtp->host_name="mail.xiaocui.com"; $smtp->localhost="localhost"; $from="webmaster@xiaocui.com"; $to="root@xiaocui.com"; if($smtp-

加入身份验证信息的SMTP mail发送

smtp 注意在VS2003下编译才可以通过. System.Web.Mail.MailMessage mail=new System.Web.Mail.MailMessage(); //定义邮件的发送地址 mail.From="aierong@126.com"; //定义邮件的接收地址 //设置以分号分隔的收件人电子邮件地址列表 mail.To="aierong@126.com"; //定义邮件的暗送地址 //设置以分号分隔的电子邮件地址列表 mail.Bcc=&

PHP实现支持SSL连接的SMTP邮件发送类

 这篇文章主要介绍了PHP实现支持SSL连接的SMTP邮件发送类,实例分析了php实现smtp邮件发送类的原理与技巧,以及支持SSL连接的方法,需要的朋友可以参考下     本文实例讲述了PHP实现支持SSL连接的SMTP邮件发送类.分享给大家供大家参考.具体如下: 该实例代码测试过了gmail和QQ邮箱的SMTP.具体代码如下: 代码如下: <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送,带附件(单个或多个附件),支持到服务器的

PHP实现支持SSL连接的SMTP邮件发送类_php技巧

本文实例讲述了PHP实现支持SSL连接的SMTP邮件发送类.分享给大家供大家参考.具体如下: 该实例代码测试过了gmail和QQ邮箱的SMTP.具体代码如下: 复制代码 代码如下: <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送,带附件(单个或多个附件),支持到服务器的ssl连接 * 需要的php扩展:sockets.Fileinfo和openssl. * 编码格式是UTF-8,传输编码格式是base64 * @example *