首先在本地要保证能访问网络或者邮件服务器,然后才能进行邮件的发送。
下面在本地linux中直接发送邮件至qq邮箱
[root@zyx ~]# ping mail.qq.com
PING mail.qq.com (14.18.245.237) 56(84) bytes of data.
64 bytes from 14.18.245.237: icmp_seq=1 ttl=52 time=33.0 ms
[root@zyx ~]# mail -s mytest 923451558@qq.com
my test mail !
我的测试邮件!EOT
----释义: -s参数后面接邮件的主题,然后是邮件接收人。回车后,是输入正文的地方,此时是将当前shell当作编辑器来用(此时注意当前环境的字符集,尤其是通过 secure等软件连接linux时,如果有中文,而字符集设置不正确可能会报错Invalid or incomplete multibyte or wide character)编辑完内容后,ctrl+D 发送邮件
[root@zyx ~]# echo "my test mail!
> 我的测试邮件2!!"|mail -s mytest2 923451558@qq.com
----释义: 使用管道直接敲入命令就能发送邮件,echo后面的是邮件正文
[root@zyx ~]# cat > mail.txt <<EOF
> test mail!
> 测试邮件!
> EOF
[root@zyx ~]# mail -s "my test3" 923451558@qq.com <mail.txt
----释义:上面邮件发送可以直接把mail.txt里面的内容当作邮件的正文发送
[root@zyx ~]# tail -f /var/log/maillog
Apr 23 05:42:31 zyx postfix/qmgr[1631]: 4647814089D: from=<root@zyx.test.com>, size=440, nrcpt=1 (queue active)
Apr 23 05:42:31 zyx postfix/smtp[19233]: connect to mx3.qq.com[240e:ff:f040:28::f]:25: Network is unreachable
Apr 23 05:42:33 zyx postfix/smtp[19233]: 4647814089D: to=<923451558@qq.com>, relay=mx3.qq.com[183.57.48.35]:25, delay=1.8, delays=0.03/0.04/0.14/1.6, dsn=2.0.0, status=sent (250 Ok: queued as )
Apr 23 05:42:33 zyx postfix/qmgr[1631]: 4647814089D: removed
[root@zyx ~]# /usr/lib/sendmail -bp
Mail queue is empty
----释义:如果返回其他错误根据情况排错
语法
mail (选项) (参数)
选项
-b<地址>:指定密件副本的收信人地址;
-c<地址>:指定副本的收信人地址;
-f<邮件文件>:读取指定邮件文件中的邮件;
-i:不显示终端发出的信息;
-I:使用互动模式;
-n:程序使用时,不使用mail.rc文件中的设置;
-N:阅读邮件时,不显示邮件的标题;
-s<邮件主题>:指定邮件的主题;
-u<用户帐号>:读取指定用户的邮件;
-v:执行时,显示详细的信息。
参数
邮件地址:收件人邮箱地址
[root@zyx ~]# cat mail.txt
test mail!
测试邮件!
[root@zyx ~]# mail -s "my test mail to oracle" oracle <mail.txt
[root@zyx ~]# /usr/lib/sendmail -bp
Mail queue is empty
linux中收到的邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
在linux中输入mail,就进行了收件箱
[root@zyx ~]# mail
No mail for root
[root@zyx ~]# ls /var/spool/mail/
oracle rpc
----当前root用户没有收到的邮件
[oracle@zyx ~]$ cat >>mail.txt <<EOF
> test mail to root!
> 发送到root用户!
> EOF
[oracle@zyx ~]$ mail -s "oracle mail to root" root <mail.txt
[oracle@zyx ~]$ mail -s "test mail" root <mail.txt
[oracle@zyx ~]$ mail -s "oralce to oracle" root <mail.txt
[oracle@zyx ~]$ mail -s mailtest root <mail.txt
[oracle@zyx ~]$ /usr/lib/sendmail -bp
Mail queue is empty
[root@zyx ~]# cat /var/spool/mail/root
From oracle@zyx.test.com Sat Apr 23 03:09:13 2016
Return-Path: <oracle@zyx.test.com>
X-Original-To: root
Delivered-To: root@zyx.test.com
Received: by zyx.test.com (Postfix, from userid 1001)
id 0D8DF14089D; Sat, 23 Apr 2016 03:09:13 +0800 (CST)
Date: Sat, 23 Apr 2016 03:09:12 +0800
To: root@zyx.test.com
Subject: oracle mail to root
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: 8bit
Message-Id: <20160422190913.0D8DF14089D@zyx.test.com>
From: oracle@zyx.test.com
test mail to root!
发送到root用户!
............................
[root@zyx ~]# mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/root": 4 messages 4 new
> 1 oracle@zyx.test.com Sat Apr 23 03:09 19/589 "oracle mail to root"
U 2 oracle@zyx.test.com Sat Apr 23 03:09 19/579 "test mail"
N 3 oracle@zyx.test.com Sat Apr 23 03:09 19/586 "oralce to oracle"
N 4 oracle@zyx.test.com Sat Apr 23 03:09 19/578 "mailtest"
&
------发送邮件
To: oracle
Subject: mail11
test mail subject
EOT
----释义:在mail邮箱中输入mail ----> 添加收件人 ----> 邮件主题 ----> 邮件正文 然后ctrl+D结束并发送
------回复邮件
& h ----查看当前邮件
> 1 oracle@zyx.test.com Sat Apr 23 03:09 20/600 "oracle mail to root"
2 oracle@zyx.test.com Sat Apr 23 03:09 20/590 "test mail"
3 oracle@zyx.test.com Sat Apr 23 03:09 20/597 "oralce to oracle"
4 oracle@zyx.test.com Sat Apr 23 03:09 20/589 "mailtest"
& R 2 ----回复第二封邮件
To: oracle@zyx.test.com
Subject: Re: test mail
oracle@zyx.test.com wrote:
> [Binary content]
>
我已经收到! ----回复邮件的正文
EOT -----ctrl+d 结束并发送
[oracle@zyx ~]$ mail ----此时oracle用户已经收到新邮件
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/oracle": 1 messages 1 new
> N 2 root Sat Apr 23 05:36 26/746 "Re: test mail"
mail进入邮箱后,命令提示符为"&"
unread 标记为未读邮件
new 新收到的邮件
f | from <message list> 只显示当前邮件的简易信息。f2显示第2封邮件的简易信息
h | headers 显示当前的邮件列表
d | delete <message list> 删除当前邮件,指针并下移。 d 1-100 删除第1到100封邮件
undelete <message list> 不删除某信息
save <message list> folder 将某封邮件保存到当前路径中,并命名为folder
copy <message list> folder append messages to folder without marking them
write <message list> file append message texts to file, save attachments
preserve <message list> keep incoming messages in mailbox even if saved
Reply <message list> 回复发件人
reply <message list> 回复发件人及所有收件人
mail addresses 发邮件,多个收件人空格分开
file folder change to another folder
quit quit and apply changes to folder
xit quit and discard changes made to folder
! shell escape
cd <directory> chdir to directory or home if none given
l | list 显示当前支持的命令列表
? | help 显示多个查看邮件列表的命令参数用法
z 显示刚进行收件箱时的后面二十封邮件列表
more | p | page 阅读当前指针所在的邮件内容 阅读时,按空格键就是翻页,按回车键就是下移一行
t | type | more | p | page num 阅读某一封邮件
n | next | {num} 阅读某一封邮件
v | visua l {num} 某封邮件进入纯文本编辑模式
top 显示当前指针所在的邮件的邮件头
file | folder 显示系统邮件所在的文件,以及邮件总数等信息
x 退出mail命令平台,并不保存之前的操作,比如删除邮件
q 退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件
cd 改变当前所在文件夹的位置写信时
连按两次Ctrl+C键则中断工作,不送此信件。
读信时,按一次Ctrl+C,退出阅读状态。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30130773/viewspace-2121083/ ,如需转载,请注明出处,否则将追究法律责任。