CentOS下使用mail命令发送邮件

如果提示mail: command not found


[[email protected] ~]# mail -s "password" [email protected] < /etc/passwd

-bash: mail: command not found

那么就是没有安装mail命令,此时需要安装mail命令


[[email protected] ~]# yum install mailx -y

[[email protected] ~]# rpm -qa|grep mail

libreport-plugin-mailx-2.0.9-19.el6.x86_64

mailx-12.4-7.el6.x86_64

procmail-3.22-25.1.el6.x86_64

mailcap-2.1.31-2.el6.noarch

sendmail-8.14.4-8.el6.x86_64

[[email protected] ~]#

Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序


[[email protected] ~]# yum -y install sendmail

[[email protected] ~]# /etc/init.d/sendmail start

Starting sendmail:                                         [  OK  ]

Starting sm-client:                                        [  OK  ]

[[email protected] ~]# chkconfig sendmail on

[[email protected] ~]# man mail

......

       mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops] [-A account]

              [-S variable[=value]] to-addr . . .

       mailx [-BDdeEHiInNRv~] [-T name] [-A account] [-S variable[=value]] -f [name]

       mailx [-BDdeEinNRv~] [-A account] [-S variable[=value]] [-u user]

......

1、通过命令行发送邮件


[[email protected] ~]# mail -s "test" [email protected] 

dfdafd

dfadf

fadf

EOT

[[email protected] ~]#

第一行是输入的命令,-s表示邮件的主题,后面的[email protected]则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。

2、使用管道进行邮件发送


[[email protected] ~]# echo "hello,echo"|mail -s "echo" [email protected]

使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。

3、使用文件进行邮件发送


[[email protected] ~]# mail -s "password" [email protected] < /etc/passwd

使用上面的命令后,我们就可以把/etc/passwd文件的内容作为邮件的内容发送给[email protected]了

很多情况下,我们也需要使用邮件来发送附件,在linux下使用mail命令发送附件也很简单,不过首先需要安装uuencode软件包,这个程序是对二进制文件进行编码使其适合通过邮件进行发送,直接使用centos的yum源可能找不到uuencode命令的包sharutils,我这里使用了网易Yum源


[[email protected] yum.repos.d]# yum -y install sharutils

[[email protected] yum.repos.d]# uuencode CentOS6-Base-163.repo 163_yum_repo |mail -s "附件" [email protected] < /etc/passwd

[[email protected] yum.repos.d]#

CentOS6-Base-163.repo 文件作为邮件的附件发送出去了。uuencode有两个参数,第一个是要发送的文件CentOS6-Base-163.repo,第二个是显示的文件名称163_yum_repo。

4、使用外部smtp(qq的SMTP)来发送邮件

bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,而通过修改配置文件/etc/mail.rc(/etc/nail.rc)可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。


[[email protected] ~]# vim /etc/mail.rc          #文末添加以下

 67 set [email protected] smtp=smtp.51cto.com

 68 set [email protected] smtp-auth-password=51cto smtp-auth=login

[[email protected] ~]# source /etc/mail.rc

[[email protected] ~]# mail -s "51cto" 15001*****@139.com < /etc/passwd

from:发送的邮件地址,对方显示的发件人

smtp:发生的外部smtp服务器的地址

smtp-auth-user:外部smtp服务器认证的用户名

smtp-auth-password:外部smtp服务器认证的用户密码

smtp-auth:邮件认证的方式

时间: 2024-10-13 02:35:43

CentOS下使用mail命令发送邮件的相关文章

linux下用mail命令发送邮件

1.首先要安装maix,默认已经安装. 2.配置/etc/mail.rc set [email protected] set smtp=mail.qyr.com set [email protected] set smtp-auth-password=密码 set smtp-auth=login 3.echo "mail content"|mail -s test [email protected]

笔记本玩linux server -- centos6 mail命令 发送邮件

安装了centos的笔记本没有鼠标操作也不方便,两个笔记本都放在桌面上操作也十分不便,因此windows下用ssh登陆服务器进行操作还是十分必要的.下载了个Putty,软件很小巧,绿色软件,直接点开就能用.centos中用ifconfig查询ip地址,windows中用Putty就能登陆了.但是发现输入用户名后等待很久才让输入密码,十分不爽.百度了一下,发现是连接设置问题.SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法,主要意思就是: ### PuTTY下设置不使用GSSA

使用Linux的mail命令发送邮件

由于经常工作在linux下,所以很多时候需要将自己工作的报告或其他有用的东东发送给相关的人,所以花时间研究了一下在linux下如何发送mail.我们通常能用到下面3中发送方式: 1. 使用Shell当编辑器发送邮件 这种方式可以直接在shell窗口编辑邮件正文,当编辑完成之后使用Ctrl+D退出,同时邮件也会被发送出去 # -s后面是邮件的主题,主题后面是目标邮件地址[[email protected] ~]# mail -s “Lucky mail” [email protected] Hi

linux下设置SMTP服务器并用mail命令发送邮件精解

在linux下设置SMTP服务器并用mail命令发邮件精解步骤: 1.vi /etc/mail.rc 在末尾追加如下内容: set [email protected]    //默认对外发送邮件的用户邮箱地址set smtp=smtp.domain.com    //选用默认发送邮件的公共邮件域名set [email protected]    //默认对外发邮件的用户set smtp-auth-password=password    //对应默认用户的密码set smtp-auth=logi

Ubuntu使用mail命令发送邮件

sudo apt-get install mailutils 如下命令发送邮件: mail -s "Test mail from ubuntu" [email protected]<wiz_tmp_highlight_tag class="cm-searching">andex.com -- -F "ckboss<[email protected]>" <<< "This is a mail f

centos下将普通命令设置为全局

示例: 描述:root用户下可以使用pm2命令,新建一个系统用户为zhangsan,zhangsan需要使用pm2命令,这时就要设置pm2为全局. 解决: 1.在root用户下查看pm2命令位置 [[email protected]~]# which pm2 /usr/sbin/pm2 2.软链:ln -s 真实有效  虚拟 ln -s /usr/sbin/pm2 /usr/local/bin/pm2 3.切换至zhangsan用户,然后验证: pm2 --help

Centos下安装Megacli命令

1.当前版本 cat /etc/redhat-release CentOS release 6.5 (Final) 2.安装包 yum -y install wget yum -y install unzip 3.下载8.07.10_MegaCLI_Linux.zip wget http://www.lsi.com/downloads/Public/RAID%20Controllers/RAID%20Controllers%20Common%20Files/8.07.10_MegaCLI_Lin

Centos下安装nc命令工具安装以及使用

1)netcat(nc)是一个简单而有用的工具,被誉为网络安全界的"瑞士军刀",不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接. 2)在Linux终端窗口可以直接使用yum工具进行安装: [[email protected] spark]# yum install nc.x86_64 3)安装完毕后,在终端模式下运行nc -help查看命令是否正常安装 [[email protected] spar

CentOS下用yum命令安装jdk

一.使用yum命令安装1.查看是否已安装JDK,卸载[plain] view plain copy[[email protected] ~]# yum list installed |grep java  [plain] view plain copyjava-1.8.0-openjdk.x86_64             1:1.8.0.121-0.b13.el7_3          @updates   java-1.8.0-openjdk-headless.x86_64    1:1.