linux利用mail发送邮件
第一步检查的mail命令是否安装
set from=myname@163.com
set smtp=smtp.163.com
set smtp-auth-user=myname
set smtp-auth-password=password (客户端授权密码)
set smtp-auth=login
第三步163邮箱开启smtp pop3
注意:一般自己发送给自己。发送给其他账号可能出现问题。
在Linux系统下mail命令的测试
发送邮件
1. 最简单的一个例子:
mail -s test myname@163.com
这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并且后面的邮箱不会挡这种可能莫名奇妙的信的时候,就能收到这封信了。如果你不想被这种乱七八糟的事情干扰,后面的邮箱请使用本地帐户。
2. 第二个例子:
三种常用格式发信
mail -s test myname@163.com #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束
echo “mail content”|mail -s test myname@163.com #第二种方法,我用的最多,可能是喜欢管道的缘故吧
mail -s test yangfang@fudan.edu.cn < file #第三种方法,以file的内容为邮件内容发信
其实你很容易发现mail从标准输入读取文件内容并发信,我也只想让你知道这一点,到此,第二个例子结束。
3. 第三个例子,带附件的邮件
如果你的系统里没有uuencode命令的话,请先安装sharutils(yum install sharutils)
uuencode 需要两个参数,第一个是你要发送的文件(们),当然这个也可以用管道来做,第二个是显示的文件名
uuencode /home/yfang/a.gif a.gif|mail -s pictest myname@163.com
tar czf - /home/yfang/ | uuencode home.tgz |mail -s pictest myname@163.com
ps: 顺便补一句,slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。
检查邮件是否发送成功
检查所传送的电子邮件是否送出,或滞留在邮件服务器中
语法:/usr/lib/sendmail -bp
若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。
若为其他错误信息,表示电子邮件因故尚未送出。
补充:
linux mail 命令参数:
i 忽略 tty 的中断讯号。 (interrupt)
I 强迫设成互动模式。 (Interactive)
v 列印出讯息,例如送信的地点、状态等等。 (verbose)
n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 邮件地址。
b bcc 邮件地址。
系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。在linux中输入mail ,就进行了收件箱,并显示二十封邮件列表。
此时命令提示符为”&”:(可以输入以下命令对邮件进行相关操作)
& help //如果不会使用或者忘记了什么命令,就输入 help 或者 ? 来获取帮助
Mail Commands
t 打印出信息 【注意】多个信息用空格分开,如 t 1 7
n 打印出下一条信息
e 编辑信息
f 输出信息的头行
d 删除信息
s file 追加信息到文件file
u 不删除某信息
R 回复发件人
r 回复发件人和本信息所有的收件人
pre 保留信息在 /usr/spool/mail 1*
m 发邮件,多个收件人用空格分开【需要sendmail支持】
q quit, saving unresolved messages in mbox 2*
x quit, do not remove system mailbox
h print out active message headers
! 让shell执行某命令,如 !ls 输出ls命令结果
cd [directory] 改变目录,这里不用 !cd,但打印当前目录需要 !pwd
转载于:https://blog.51cto.com/tlinux/1728721