sendmail 在linux 中如何启动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sendmail 在linux 中如何启动相关的知识,希望对你有一定的参考价值。
参考技术A 分类: 电脑/网络 >> 操作系统/系统故障解析:
Sendmail的配置十分复杂。它的配置文件是sendmail.cf,位于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。我们一般通过m4宏处理程序来生成所需的sendmail.cf文件。创建的过程中还需要一个模板文件,系统默认在/etc/mail目录下有一个sendmail.mc模板文件。
我们可以根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,而无需直接编辑sendmail.cf文件。可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的。这里介绍创建sendmail.cf文件的步骤:
(1)备份原有sendmail.cf文件
在终端命令窗口运行以下命令:
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
(2)生成sendmail.cf文件
根据sendmail.mc模板文件产生sendmail.cf配置文件,并导出到/etc/mail/目录下:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
(3)重启sendmail服务
[root@ahpeng root] /etc/rc.d/init.d/sendmail restart
很显然,用m4宏编译工具创建sendmail.cf文件比较方便,而且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmail.mc模板的大致内容如下:
divert(-1)dnl
......
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl
......
dnl #
dnl define('SMART_HOST',' *** tp.your.provider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', ' *** msp')dnl
dnl define(′confAUTO_REBUILD′)dnl
......
这里介绍sendmail.mc模板的语法组成:
dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。
divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。
OSTYPE ('OperationSystemType'):定义使用的操作系统类型,显然这里应该用linux代替OperationSystemType,注意要用一个反引号和一个正引号把对应的操作系统类型括起来。
define:定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子:define('ALIAS_FILE','/etc/aliases')
定义别名文件(alia file)的保存路径,默认是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的状态信息文件。
以上只是sendmai.mc的一些简单的语法解释,更多的参数含义及其配置信息可以参见sendmail/m4/eaking_config。
为新用户开电子邮件账号
在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击"主菜单→系统设置→用户和组群"菜单项,打开"Red Hat用户管理器"对话框,单击"添加用户"按钮,在出现的"创建新用户"对话框里指定用户名、登录口令即可,如图3所示。
假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址Peter@YourDomain(此处的YourDomain用你自己域名代替)。
以上过程也可以在终端命令窗口运行以下命令来实现:
[root@ahpeng root]#adduser peter -p peter
为电子邮件账户设置别名
有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。
比如说,用户peter想拥有以下3个电子邮件地址:
peter@YourDomain、dearpeter@ YourDomain、truepeter@ YourDomain。
我们可以通过以下步骤来实现这样的别名设置:
新增一个账号peter;然后用vi、或者Kate等文本编辑器打开/etc/aliases,在里面加上两行:
dearpeter: peter
truepeter: peter
保存该/etc/aliases退出。
不过,就这样还不能让Sendmail接受新增的别名,我们必须在终端命令窗口运行newaliases命令,以要求Sendmail重新读取/etc/aliases文件。如果一切无误,应该可以看到类似以下的回应消息:
[root@ahpeng root]# newaliases
/etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total
这样,发给peter的邮件可以使用3个邮件地址,而peter只需要使用一个电子邮件账号peter@YourDomain就可以接收所有寄给以上3个地址的电子邮件。
指定邮箱容量限制
当一个邮件服务器为许多人提供邮件服务时,无 *** 的电子邮件将很容易塞满服务器的硬盘,造成硬盘负担。如果不想为用户提供无限空间的邮件暂存空间,可以使用"邮件限额"来给用户一个有限的暂存空间。
其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。
支持POP和IMAP功能
到现在为止,我们已经可以用Outlook Express发送邮件,或者登录服务器使用mail、pine命令收取、管理邮件。但是还不能用Outlook Express等客户端从服务器下载邮件,这是因为Sendmail并不具备POP3(IMAP)的功能,所以我们必须自己安装。
(1)POP和IMAP服务器安装
安装Red Hat Linux 9.0时,可以选择安装POP和IMAP服务器,可以在终端命令窗口运行以下命令进行验证:
[root@ahpeng root]# rpm -qa imap
imap-2001a-18
如果没有安装,可以将第2张安装光盘放进光驱,然后在终端命令窗口运行以下命令即可开始安装:
[root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS
[root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm
由于Red Hat Linux 9.0已经将POP和IMAP打包成一个单独的套件,安装好imap-2001a-18.i386.rpm,就会同时安装这两个服务器
(2)启动POP和IMAP服务
要成功启动POP和IMAP服务器,首先要确定这些服务存在于/etc/services文件,确保以下的服务前面没有加上#注释(如果有,必须去除注释)。
imap 143/tcp imap2 # Interim Mail Access Proto v2
imap 143/udp imap2
pop2 109/tcp pop-2 postoffice # POP version 2
pop2 109/udp pop-2
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
修改好/etc/services文件,接下来就要对相应服务配置文件进行定制:
启动POP3服务:必须修改/etc/xid.d/ipop3文件,将其中的"disable=yes"改为"disable=no",保存该文件。最后必须重新启动xid程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xid reload
启动IMAP服务:必须修改/etc/xid.d/imap文件,将其中的"disable = yes"改为"disable =no",保存该文件。最后必须重新启动xid程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xid reload
设置好以后,就可以在Outlook Express里面设置好邮件账号,以后就可以直接利用Sendmail服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。
Linux学习-->如何通过Shell脚本实现发送邮件通知功能?
1、安装和配置sendmail
不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件。不过mail命令是依赖sendmail的,所以我们需要先检查安装和配置sendmail。
一般系统都自带sendmail,但是只能给内网的邮箱发邮件。如果想给公网的邮箱发邮件(比如qq邮箱)就需要配置sendmail.
这里记录sendmail的安装启动配置,各取所需。
尝试使用mail命令发送一封邮件。
root@ubuntu4146:/data/gitlabData/backups# mail -s "Hello from Linux Server by shell" ouyangpeng@oaserver.com
The program 'mail' is currently not installed. You can install it by typing:
apt-get install mailutils
发送失败,命令mail没有安装
因此,我们使用 apt-get install mailutils
命令安装mailutils
root@ubuntu4146:/data/gitlabData/backups# apt-get install mailutils
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
lib32asan0 lib32atomic1 lib32gcc-4.8-dev lib32gcc1 lib32gomp1 lib32itm1
lib32quadmath0 lib32stdc++-4.8-dev lib32stdc++6 libbonobo2-common
libc6-dev-x32 libc6-x32 libgnome2-common libltdl-dev liborbit-2-0 libssl-dev
libssl-doc libstdc++-4.8-dev libx32asan0 libx32atomic1 libx32gcc-4.8-dev
libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++-4.8-dev
libx32stdc++6 pkg-php-tools shtool
Use 'apt-get autoremove' to remove them.
将会安装下列额外的软件包:
guile-2.0-libs libgsasl7 libkyotocabinet16 liblzo2-2 libmailutils4 libntlm0
mailutils-common
建议安装的软件包:
mailutils-mh mailutils-doc
下列【新】软件包将被安装:
guile-2.0-libs libgsasl7 libkyotocabinet16 liblzo2-2 libmailutils4 libntlm0
mailutils mailutils-common
升级了 0 个软件包,新安装了 8 个软件包,要卸载 0 个软件包,有 310 个软件包未被升级。
需要下载 3,461 kB 的软件包。
解压缩后会消耗掉 18.0 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main liblzo2-2 amd64 2.06-1.2ubuntu1.1 [46.1 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe libkyotocabinet16 amd64 1.2.76-4 [288 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe libntlm0 amd64 1.4-1 [15.3 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu/ trusty/main guile-2.0-libs amd64 2.0.9+1-1ubuntu1 [2,127 kB]
获取:5 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe libgsasl7 amd64 1.8.0-2ubuntu2 [117 kB]
获取:6 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe mailutils-common all 1:2.99.98-1.1 [245 kB]
获取:7 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe libmailutils4 amd64 1:2.99.98-1.1 [398 kB]
获取:8 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe mailutils amd64 1:2.99.98-1.1 [225 kB]
下载 3,461 kB,耗时 2秒 (1,283 kB/s)
Selecting previously unselected package liblzo2-2:amd64.
(正在读取数据库 ... 系统当前共安装有 172915 个文件和目录。)
Preparing to unpack .../liblzo2-2_2.06-1.2ubuntu1.1_amd64.deb ...
Unpacking liblzo2-2:amd64 (2.06-1.2ubuntu1.1) ...
Selecting previously unselected package libkyotocabinet16:amd64.
Preparing to unpack .../libkyotocabinet16_1.2.76-4_amd64.deb ...
Unpacking libkyotocabinet16:amd64 (1.2.76-4) ...
Selecting previously unselected package libntlm0:amd64.
Preparing to unpack .../libntlm0_1.4-1_amd64.deb ...
Unpacking libntlm0:amd64 (1.4-1) ...
Selecting previously unselected package guile-2.0-libs.
Preparing to unpack .../guile-2.0-libs_2.0.9+1-1ubuntu1_amd64.deb ...
Unpacking guile-2.0-libs (2.0.9+1-1ubuntu1) ...
Selecting previously unselected package libgsasl7.
Preparing to unpack .../libgsasl7_1.8.0-2ubuntu2_amd64.deb ...
Unpacking libgsasl7 (1.8.0-2ubuntu2) ...
Selecting previously unselected package mailutils-common.
Preparing to unpack .../mailutils-common_1%3a2.99.98-1.1_all.deb ...
Unpacking mailutils-common (1:2.99.98-1.1) ...
Selecting previously unselected package libmailutils4.
Preparing to unpack .../libmailutils4_1%3a2.99.98-1.1_amd64.deb ...
Unpacking libmailutils4 (1:2.99.98-1.1) ...
Selecting previously unselected package mailutils.
Preparing to unpack .../mailutils_1%3a2.99.98-1.1_amd64.deb ...
Unpacking mailutils (1:2.99.98-1.1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
正在设置 liblzo2-2:amd64 (2.06-1.2ubuntu1.1) ...
正在设置 libkyotocabinet16:amd64 (1.2.76-4) ...
正在设置 libntlm0:amd64 (1.4-1) ...
正在设置 guile-2.0-libs (2.0.9+1-1ubuntu1) ...
正在设置 libgsasl7 (1.8.0-2ubuntu2) ...
正在设置 mailutils-common (1:2.99.98-1.1) ...
正在设置 libmailutils4 (1:2.99.98-1.1) ...
正在设置 mailutils (1:2.99.98-1.1) ...
update-alternatives: using /usr/bin/frm.mailutils to provide /usr/bin/frm (frm) in 自动模式
update-alternatives: using /usr/bin/from.mailutils to provide /usr/bin/from (from) in 自动模式
update-alternatives: using /usr/bin/messages.mailutils to provide /usr/bin/messages (messages) in 自动模式
update-alternatives: using /usr/bin/movemail.mailutils to provide /usr/bin/movemail (movemail) in 自动模式
update-alternatives: using /usr/bin/readmsg.mailutils to provide /usr/bin/readmsg (readmsg) in 自动模式
update-alternatives: using /usr/bin/dotlock.mailutils to provide /usr/bin/dotlock (dotlock) in 自动模式
update-alternatives: using /usr/bin/mail.mailutils to provide /usr/bin/mailx (mailx) in 自动模式
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
root@ubuntu4146:/data/gitlabData/backups#
2、使用shell脚本发送Email
首先执行命令mail --help
查找mail命令的用法
root@ubuntu4146:/data/gitlabData/backups# mail --help
Usage: mail [OPTION...] [address...]
or: mail [OPTION...] -f [OPTION...] [file]
or: mail [OPTION...] --file [OPTION...] [file]
or: mail [OPTION...] --file=file [OPTION...]
GNU mail -- process mail messages.
If -f or --file is given, mail operates on the mailbox named by the first
argument, or the user's mbox, if no argument given.
-a, --append=HEADER: VALUE append given header to the message being sent
-A, --attach=FILE attach FILE
--content-type=TYPE set content type for subsequent --attach options
-e, --exist return true if mail exists
--encoding=NAME set encoding for subsequent --attach options
-E, --exec=COMMAND execute COMMAND
-F, --byname save messages according to sender
-H, --headers write a header summary and exit
-i, --ignore ignore interrupts
-n, --norc do not read the system mailrc file
-N, --nosum do not display initial header summary
-p, --print, --read print all mail to standard output
-q, --quit cause interrupts to terminate program
-r, --return-address=ADDRESS use address as the return address when sending
mail
-s, --subject=SUBJ send a message with the given SUBJECT
-t, --to precede message by a list of addresses
-u, --user=USER operate on USER's mailbox
Common options
--config-file=FILE, --rcfile=FILE
load this configuration file
--config-help show configuration file summary
--config-lint, --rcfile-lint
check configuration file syntax and exit
--config-verbose, --rcfile-verbose
verbosely log parsing of the configuration files
--no-site-config, --no-site-rcfile
do not load site configuration file
--no-user-config, --no-user-rcfile
do not load user configuration file
--set=PARAM=VALUE set configuration parameter
--show-config-options show compilation options
Global debugging settings
--debug-level=LEVEL set Mailutils debugging level
--debug-line-info show source info with debugging messages
-?, --help give this help list
--usage give a short usage message
-V, --version print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to <bug-mailutils@gnu.org>.
root@ubuntu4146:/data/gitlabData/backups#
2.1 无邮件正文
mail -s "主题" 收件地址
例如我们执行:
root@ubuntu4146:/data/gitlabData/backups# mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com
Cc:
Null message body; hope that's ok
root@ubuntu4146:/data/gitlabData/backups#
提示你输入Cc地址,即邮件抄送地址,没有抄送地址则直接回车就完成了邮件的发送。
接着会让你输入邮件正文,当邮件正文输入完成后,需要按CTRL+D结束输入。此时我们不填写邮件正文,直接按CTRL+D结束输入。它会提示我们Null message body; hope that’s ok。
此时查看OA邮件,可以收到刚才发送过来的无正文的邮件。
2.2 有邮件正文
2.2.1 echo “邮件正文” | mail -s 邮件主题 收件地址
执行管道命令,来填写邮件正文,例如我们执行命令:
root@ubuntu4146:/# echo "Email Content:This is the content of mail. Welcome to ouyangpeng's blog : http://blog.csdn.net/ouyang_peng/" | mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com
root@ubuntu4146:/#
这时,我们收到的OA邮件内容如下:
2.2.2 mail -s “主题” 收件地址< 文件(邮件正文)
例如我们执行如下命令,则将/data/gitlabData/backups/log/2017-08-18.log 文件内容当做邮件正文发送了。
root@ubuntu4146:/# mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com < /data/gitlabData/backups/log/2017-08-18.log
这时,我们收到的OA邮件内容如下:
2.2.3 cat 邮件正文.txt | mail -s 邮件主题 收件地址
例如我们执行如下命令,则将/data/gitlabData/backups/log/2017-08-17.log 文件内容当做邮件正文发送了。
root@ubuntu4146:/# cat /data/gitlabData/backups/log/2017-08-17.log | mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com
这时,我们收到的OA邮件内容如下:
2.3 邮件附件
2.3.1 mail -s “主题” 收件地址 -A 附件
root@ubuntu4146:/# mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com -A /data/gitlabData/backups/log/2017-08-18.log
Cc:
This email attach a file.
root@ubuntu4146:/#
提示你输入Cc地址,即邮件抄送地址,没有抄送地址则直接回车就完成了邮件的发送。
接着会让你输入邮件正文 “This email attach a file.”,当邮件正文输入完成后,需要按CTRL+D结束输入。
这时,我们收到的OA邮件内容如下:
2.3.2 mail -s “主题” 收件地址 -a 附件 < 文件(邮件正文.txt)
root@ubuntu4146:/# mail -s "Email Subject : Hello from Linux Server by shell" ouyangpeng@oaserver.dw.gdbbk.com -A /data/gitlabData/backups/auto_backup.sh < /data/gitlabData/backups/log/2017-08-18.log
执行如上命令,/data/gitlabData/backups/auto_backup.sh
会当做附件发送,/data/gitlabData/backups/log/2017-08-18.log
的内容会当做正文发送
这时,我们收到的OA邮件内容如下:
3、发送给多个人
root@ubuntu4146:/data/gitlabData/backups# mail --help
Usage: mail [OPTION...] [address...]
or: mail [OPTION...] -f [OPTION...] [file]
or: mail [OPTION...] --file [OPTION...] [file]
or: mail [OPTION...] --file=file [OPTION...]
GNU mail -- process mail messages.
If -f or --file is given, mail operates on the mailbox named by the first
argument, or the user's mbox, if no argument given.
-a, --append=HEADER: VALUE append given header to the message being sent
-A, --attach=FILE attach FILE
--content-type=TYPE set content type for subsequent --attach options
-e, --exist return true if mail exists
--encoding=NAME set encoding for subsequent --attach options
-E, --exec=COMMAND execute COMMAND
-F, --byname save messages according to sender
-H, --headers write a header summary and exit
-i, --ignore ignore interrupts
-n, --norc do not read the system mailrc file
-N, --nosum do not display initial header summary
-p, --print, --read print all mail to standard output
-q, --quit cause interrupts to terminate program
-r, --return-address=ADDRESS use address as the return address when sending
mail
-s, --subject=SUBJ send a message with the given SUBJECT
-t, --to precede message by a list of addresses
-u, --user=USER operate on USER's mailbox
Common options
--config-file=FILE, --rcfile=FILE
load this configuration file
--config-help show configuration file summary
--config-lint, --rcfile-lint
check configuration file syntax and exit
--config-verbose, --rcfile-verbose
verbosely log parsing of the configuration files
--no-site-config, --no-site-rcfile
do not load site configuration file
--no-user-config, --no-user-rcfile
do not load user configuration file
--set=PARAM=VALUE set configuration parameter
--show-config-options show compilation options
Global debugging settings
--debug-level=LEVEL set Mailutils debugging level
--debug-line-info show source info with debugging messages
-?, --help give this help list
--usage give a short usage message
-V, --version print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to <bug-mailutils@gnu.org>.
root@ubuntu4146:/data/gitlabData/backups#
查看上面的mail帮助文档,使用 -t 选项 指定一个收件人列表。
下面测试发送一封邮件给3个人,如下所示:
root@ubuntu4146:/data/gitlabData/backups# cat /data/gitlabData/backups/log/2017-08-17.log | mail -s "Email Subject : Hello from Linux Server by shell" -t yizhongwei@oaserver.dw.gdbbk.com ouyangpeng@oaserver.dw.gdbbk.com huxiaoqiao@oaserver.dw.gdbbk.com
OA邮箱收到邮件可以看到有三个收件人。
上面的命令是Ubuntu系统的mail命令的用法,但是在Center OS系统时,该命令有所不同
首先通过如下命令 lsb_release -a
查看系统版本
[root@localhost gitlabDataBackup]# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.8 (Final)
Release: 6.8
Codename: Final
然后使用命令 man help
查看mail命令的用法
[root@localhost gitlabDataBackup]# mail --help
mail: illegal option -- -
Usage: mail -eiIUdEFntBDNHRV~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users
[root@localhost gitlabDataBackup]#
使用 man mail
命令查看mail的更加具体的用法
MAILX(1) User Commands MAILX(1)
NAME
mailx - send and receive Internet mail
SYNOPSIS
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]
DESCRIPTION
Mailx is an intelligent mail processing system, which has a command syntax reminiscent of ed(1) with lines replaced by messages. It is based on Berkeley Mail 8.1,
is intended to provide the functionality of the POSIX mailx command, and offers extensions for MIME, IMAP, POP3, SMTP, and S/MIME. Mailx provides enhanced fea-
tures for interactive use, such as caching and disconnected operation for IMAP, message threading, scoring, and filtering. It is also usable as a mail batch lan-
guage, both for sending and receiving mail.
The following options are accepted:
-A name
Executes an account command (see below) for name after the startup files have been read.
-a file
Attach the given file to the message.
-B Make standard input and standard output line-buffered.
-b address
Send blind carbon copies to list. List should be a comma-separated list of names.
-c address
Send carbon copies to list of users.
-D Start in disconnected mode; see the description for the disconnected variable option.
-d Enables debugging messages and disables the actual delivery of messages. Unlike -v, this option is intended for mailx development only.
-e Just check if mail is present in the system mailbox. If yes, return an exit status of zero, else, a non-zero value.
-E If an outgoing message does not contain any text in its first or only message part, do not send it but discard it silently, effectively setting the skipemp-
tybody variable at program startup. This is useful for sending messages from scripts started by cron(8).
-f [file]
Read in the contents of the user’s mbox (or the specified file) for processing; when mailx is quit, it writes undeleted messages back to this file. The
string file is handled as described for the folder command below.
-F Save the message to send in a file named after the local part of the first recipient’s address.
-H Print header summaries for all messages and exit.
-h hops
Invoke sendmail with the specified hop count. This option has no effect when SMTP is used for sending mail.
-i Ignore tty interrupt signals. This is particularly useful when using mailx on noisy phone lines.
-I Shows the ‘Newsgroup:’ or ‘Article-Id:’ fields in the header summary. Only applicable in combination with -f.
-n Inhibits reading /etc/mail.rc upon startup. This option should be activated for mailx scripts that are invoked on more than one machine, because the con-
tents of that file may differ between them.
-N Inhibits the initial display of message headers when reading mail or editing a mail folder.
-q file
Start the message with the contents of the specified file. May be given in send mode only.
-r address
Sets the From address. Overrides any from variable specified in environment or startup files. Tilde escapes are disabled. The -r address options are
passed to the mail transfer agent unless SMTP is used. This option exists for compatibility only; it is recommended to set the from variable directly
instead.
-R Opens any folders read-only.
-s subject
Specify subject on command line (only the first argument after the -s flag is used as a subject; be careful to quote subjects containing spaces).
-S variable[=value]
Sets the internal option variable and, in case of a string option, assigns value to it.
-T name
Writes the ‘Message-Id:’ and ‘Article-Id:’ header fields of each message read in the file name. Implies -I. Compressed files are handled as described for
the folder command below.
-t The message to be sent is expected to contain a message header with ‘To:’, ‘Cc:’, or ‘Bcc:’ fields giving its recipients. Recipients specified on the com-
mand line are ignored.
-u user
Reads the mailbox of the given user name.
-v Verbose mode. The details of delivery are displayed on the user’s terminal.
-V Print mailx’s version and exit.
-~ Enable tilde escapes even if not in interactive mode.
后面还有很多介绍,就不贴代码了
由上面可以发现,Ubuntu的mail命令和Center OS系统的mail命令是不一样的,因此在Center OS 系统想同时发生给多个人的话,不能使用-t选项。
因此在Center OS 上,使用如下命令来进行给多个人发送邮件
[root@localhost gitlabDataBackup]# echo "Test send mail to multiple people" | mail -s "Congratulation! GitLab clean old backupFiles Success Report." -a /root/gitlabDataBackup/log/2017-08-21.log ouyangpeng@oaserver.dw.gdbbk.com -c yizhongwei@oaserver.dw.gdbbk.com,huxiaoqiao@oaserver.dw.gdbbk.com
You have new mail in /var/spool/mail/root
[root@localhost gitlabDataBackup]#
收到的OA邮件如下所示:
4、检查邮件是否发出
检查所传送的电子邮件是否送出,或滞留在邮件服务器中
/usr/lib/sendmail -bp
若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。
若为其他错误信息,表示电子邮件因故尚未送出。
例如下面执行命令之后,就可以看到有些很久之前的邮件没有发送出去。
5、读取邮件
系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
在linux中输入mail回车 ,就进入了收件箱,并显示邮件列表。
root@ubuntu4146:/# mail
"/var/mail/root": 3 messages 3 new
>N 1 Cron Daemon 二 8月 15 10: 147/5848 Cron <root@ubuntu4146> /data/gitlabData/backups/auto_backup.sh -D 1
N 2 Cron Daemon 二 8月 15 10: 147/5848 Cron <root@ubuntu4146> /data/gitlabData/backups/auto_backup.sh -D 1
N 3 Cron Daemon 三 8月 16 06: 18/793 Cron <root@ubuntu4146> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
?
Return-Path: <root@ubuntu4146.ubantu4146>
X-Original-To: root
Delivered-To: root@ubuntu4146.ubantu4146
Received: by ubuntu4146.ubantu4146 (Postfix, from userid 0)
id 5A4AC1463CE; Tue, 15 Aug 2017 10:30:37 +0800 (CST)
From: root@ubuntu4146.ubantu4146 (Cron Daemon)
To: root@ubuntu4146.ubantu4146
Subject: Cron <root@ubuntu4146> /data/gitlabData/backups/auto_backup.sh -D 1
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20170815023037.5A4AC1463CE@ubuntu4146.ubantu4146>
Date: Tue, 15 Aug 2017 10:30:37 +0800 (CST)
6、编写shell脚本监控执行任务然后邮件通知
可以参考我下一篇博客
- Git学习–>如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?
http://blog.csdn.net/ouyang_peng/article/details/77371161
博客里面详细说明了如何进行任务监控以及邮件通知!
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/76220621
以上是关于sendmail 在linux 中如何启动的主要内容,如果未能解决你的问题,请参考以下文章