前言
linux 系统中常见的邮件发送服务有sendmai 和sendEmail 两个是完全不同的东西
Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序
[root@ProxyServer ~]
# yum -y install sendmail
[root@ProxyServer ~]
# /etc/init.d/sendmail start
[root@ProxyServer ~]
# chkconfig sendmail on
[root@ProxyServer ~]
# man mail
1、通过命令行发送邮件
[root@ProxyServer ~]
# mail -s "test" [email protected]
dfdafd
dfadf
fadf
EOT
[root@ProxyServer ~]
#
|
第一行是输入的命令,-s表示邮件的主题,后面的[email protected]则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
2、使用管道进行邮件发送
echo "hello,echo"|mail -s "echo" [email protected]
3、使用文件进行邮件发送
mail -s "password" [email protected] < /etc/passwd
4、使用外部smtp(qq的SMTP)来发送邮件
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,而通过修改配置文件/etc/mail.rc(/etc/nail.rc)可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。
[root@ProxyServer ~]
# vim /etc/mail.rc #文末添加以下
[root@ProxyServer ~]
# source /etc/mail.rc
[root@ProxyServer ~]
# mail -s "51cto" 15001*****@139.com < /etc/passwd
|
from:发送的邮件地址,对方显示的发件人
smtp:发生的外部smtp服务器的地址
smtp-auth-user:外部smtp服务器认证的用户名
smtp-auth-password:外部smtp服务器认证的用户密码
smtp-auth:邮件认证的方式
http://www.ttlsa.com/linux/use-sendemail/
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash
perl和web站点使用。
以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.
1
2
3
4
|
sendEmail下载地址:
http
:
//caspian.dotconf.net/menu/Software/SendEmail/
# wgethttp://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本
# tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了
# mv sendEmail /usr/local/bin/
|
1
2
3
|
# /usr/local/bin/sendEmail [email protected] -t [email protected] \
-
s
smtp
.
163.com
-
u
"我是邮件主题"
-
o
message
-
content
-
type
=
html
\
-
o
message
-
charset
=
utf8
-
xu
ttlsafrom
@
163.com
-
xp
123456
-
m
"我是邮件内容"
|
命令说明:
1
2
3
4
5
6
7
8
9
|
/
usr
/
local
/
bin
/
sendEmail
命令主程序
-
f
ttlsafrom
@
163.com
发件人邮箱
-
s
smtp
.
163.com
发件人邮箱的
smtp服务器
-
u
"我是邮件主题"
邮件的标题
-
o
message
-
content
-
type
=
html
邮件内容的格式
,
html表示它是
html格式
-
o
message
-
charset
=
utf8
邮件内容编码
-
xu
ttlsafrom
@
163.com
发件人邮箱的用户名
-
xp
123456
发件人邮箱密码
-
m
"我是邮件内容"
邮件的具体内容
|
发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
[
root
@
li229
-
122
scripts
]
# sendEmail --help
sendEmail
-
1.56
by
Brandon
Zehm
<
caspian
@
dotconf
.
net
>
Synopsis
:
sendEmail
-
f
ADDRESS
[
options
]
Required
:
-
f
ADDRESS
from
(
sender
)
email
address
*
At
least
one
recipient
required
via
-
t
,
-
cc
,
or
-
bcc
*
Message
body
required
via
-
m
,
STDIN
,
or
-
o
message
-
file
=
FILE
Common
:
-
t
ADDRESS
[
ADDR
.
.
.
]
to
email
address
(
es
)
-
u
SUBJECT
message
subject
-
m
MESSAGE
message
body
-
s
SERVER
[
:
PORT
]
smtp
mail
relay
,
default
is
localhost
:
25
Optional
:
-
a
FILE
[
FILE
.
.
.
]
file
attachment
(
s
)
-
cc
ADDRESS
[
ADDR
.
.
.
]
cc
email
address
(
es
)
-
bcc
ADDRESS
[
ADDR
.
.
.
]
bcc
email
address
(
es
)
-
xu
USERNAME
username
for
SMTP
authentication
-
xp
PASSWORD
password
for
SMTP
authentication
Paranormal
:
-
b
BINDADDR
[
:
PORT
]
local
host
bind
address
-
l
LOGFILE
log
to
the
specified
file
-
v
verbosity
,
use
multiple
times
for
greater
effect
-
q
be
quiet
(
i
.
e
.
no
STDOUT
output
)
-
o
NAME
=
VALUE
advanced
options
,
for
details
try
:
--
help
misc
-
o
message
-
content
-
type
=
<
auto
|
text
|
html
>
-
o
message
-
file
=
FILE
-
o
message
-
format
=
raw
-
o
message
-
header
=
HEADER
-
o
message
-
charset
=
CHARSET
-
o
reply
-
to
=
ADDRESS
-
o
timeout
=
SECONDS
-
o
username
=
USERNAME
-
o
password
=
PASSWORD
-
o
tls
=
<
auto
|
yes
|
no
>
-
o
fqdn
=
FQDN
Help
:
--
help
the
helpful
overview
you'
re
reading
now
--
help
addressing
explain
addressing
and
related
options
--
help
message
explain
message
body
input
and
related
options
--
help
networking
explain
-
s
,
-
b
,
etc
--
help
output
explain
logging
and
other
output
options
--
help
misc
explain
-
o
options
,
TLS
,
SMTP
auth
,
and
more
|
vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 server="smtp.exmail.qq.com" user="[email protected]" pwd="Tsdyosds" /usr/local/bin/sendEmail -f [email protected] -t "$to" -s $server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $pwd -m "$body" 2>>/tmp/22.log ./mail.sh [email protected] 1212 xxx |
linux 系统中常见的邮件发送服务有sendmai 和sendEmail 两个是完全不同的东西
Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序
[root@ProxyServer ~]
# yum -y install sendmail
[root@ProxyServer ~]
# /etc/init.d/sendmail start
[root@ProxyServer ~]
# chkconfig sendmail on
[root@ProxyServer ~]
# man mail
1、通过命令行发送邮件
[root@ProxyServer ~]
# mail -s "test" [email protected]
dfdafd
dfadf
fadf
EOT
[root@ProxyServer ~]
#
|
第一行是输入的命令,-s表示邮件的主题,后面的[email protected]则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
2、使用管道进行邮件发送
echo "hello,echo"|mail -s "echo" [email protected]
3、使用文件进行邮件发送
mail -s "password" [email protected] < /etc/passwd
4、使用外部smtp(qq的SMTP)来发送邮件
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,而通过修改配置文件/etc/mail.rc(/etc/nail.rc)可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。
[root@ProxyServer ~]
# vim /etc/mail.rc #文末添加以下
[root@ProxyServer ~]
# source /etc/mail.rc
[root@ProxyServer ~]
# mail -s "51cto" 15001*****@139.com < /etc/passwd
|
from:发送的邮件地址,对方显示的发件人
smtp:发生的外部smtp服务器的地址
smtp-auth-user:外部smtp服务器认证的用户名
smtp-auth-password:外部smtp服务器认证的用户密码
smtp-auth:邮件认证的方式
http://www.ttlsa.com/linux/use-sendemail/
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash
perl和web站点使用。
以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.
1
2
3
4
|
sendEmail下载地址:
http
:
//caspian.dotconf.net/menu/Software/SendEmail/
# wgethttp://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本
# tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了
# mv sendEmail /usr/local/bin/
|
1
2
3
|
# /usr/local/bin/sendEmail [email protected] -t [email protected] \
-
s
smtp
.
163.com
-
u
"我是邮件主题"
-
o
message
-
content
-
type
=
html
\
-
o
message
-
charset
=
utf8
-
xu
ttlsafrom
@
163.com
-
xp
123456
-
m
"我是邮件内容"
|
命令说明:
1
2
3
4
5
6
7
8
9
|
/
usr
/
local
/
bin
/
sendEmail
命令主程序
-
f
ttlsafrom
@
163.com
发件人邮箱
-
s
smtp
.
163.com
发件人邮箱的
smtp服务器
-
u
"我是邮件主题"
邮件的标题
-
o
message
-
content
-
type
=
html
邮件内容的格式
,
html表示它是
html格式
-
o
message
-
charset
=
utf8
邮件内容编码
-
xu
ttlsafrom
@
163.com
发件人邮箱的用户名
-
xp
123456
发件人邮箱密码
-
m
"我是邮件内容"
邮件的具体内容
|
发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
[
root
@
li229
-
122
scripts
]
# sendEmail --help
sendEmail
-
1.56
by
Brandon
Zehm
<
caspian
@
dotconf
.
net
>
Synopsis
:
sendEmail
-
f
ADDRESS
[
options
]
Required
:
-
f
ADDRESS
from
(
sender
)
email
address
*
At
least
one
recipient
required
via
-
t
,
-
cc
,
or
-
bcc
*
Message
body
required
via
-
m
,
STDIN
,
or
-
o
message
-
file
=
FILE
Common
:
-
t
ADDRESS
[
ADDR
.
.
.
]
to
email
address
(
es
)
-
u
SUBJECT
message
subject
-
m
MESSAGE
message
body
-
s
SERVER
[
:
PORT
]
smtp
mail
relay
,
default
is
localhost
:
25
Optional
:
-
a
FILE
[
FILE
.
.
.
]
file
attachment
(
s
)
-
cc
ADDRESS
[
ADDR
.
.
.
]
cc
email
address
(
es
)
-
bcc
ADDRESS
[
ADDR
.
.
.
]
bcc
email
address
(
es
)
-
xu
USERNAME
username
for
SMTP
authentication
-
xp
PASSWORD
password
for
SMTP
authentication
Paranormal
:
-
b
BINDADDR
[
:
PORT
]
local
host
bind
address
-
l
LOGFILE
log
to
the
specified
file
-
v
verbosity
,
use
multiple
times
for
greater
effect
-
q
be
quiet
(
i
.
e
.
no
STDOUT
output
)
-
o
NAME
=
VALUE
advanced
options
,
for
details
try
:
--
help
misc
-
o
message
-
content
-
type
=
<
auto
|
text
|
html
>
-
o
message
-
file
=
FILE
-
o
message
-
format
=
raw
-
o
message
-
header
=
HEADER
-
o
message
-
charset
=
CHARSET
-
o
reply
-
to
=
ADDRESS
-
o
timeout
=
SECONDS
-
o
username
=
USERNAME
-
o
password
=
PASSWORD
-
o
tls
=
<
auto
|
yes
|
no
>
-
o
fqdn
=
FQDN
Help
:
--
help
the
helpful
overview
you'
re
reading
now
--
help
addressing
explain
addressing
and
related
options
--
help
message
explain
message
body
input
and
related
options
--
help
networking
explain
-
s
,
-
b
,
etc
--
help
output
explain
logging
and
other
output
options
--
help
misc
explain
-
o
options
,
TLS
,
SMTP
auth
,
and
more
|
vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 server="smtp.exmail.qq.com" user="[email protected]" pwd="Tuzhuyou3498" /usr/local/bin/sendEmail -f [email protected] -t "$to" -s $server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $pwd -m "$body" 2>>/tmp/22.log ./mail.sh [email protected] 1212 xxx |