linux邮件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/study4034/article/details/50475021

Linux服务器发送邮件一般都是基于sendmail进行的,sendmail服务器提供对外的邮件发送功能。

1.安装sendmail服务器安装方法:

#sudo apt-get install sendmail

2.然后通过ps查看是否有sendmail进程,如果存在,则安装成功:

#ps -ef|grep sendmail
root      1282     1  0 13:39 ?        00:00:00 sendmail: MTA: accepting connections

3.成功安装sendmail后,就可以向邮件账户发送邮件了,编辑如下文件a.sh,通过chmod 更改权限后执行就可以。

#!/bin/bash
/usr/sbin/sendmail -t << EOF
From: Mail test          
Sender: zhidao
To: [email protected]                        
Cc: [email protected]                  
Subject: mail testing  
----------------------------------
This is the mail content ...
muhaha
---------------------------------
EOF
 
 
 
 

在Linux系统下mail命令的测试

1. 最简单的一个例子:

 mail -s test [email protected]

这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并且后面的邮箱不会挡这种可能莫名奇妙的信的时候,就能收到这封信了。如果你不想被这种乱七八糟的事情干扰,后面的邮箱请使用本地帐户。 

2. 第二个例子:

 三种常用格式发信

mail -s test [email protected] #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo “mail content”|mail -s test [email protected] #第二种方法,我用的最多,可能是喜欢管道的缘故吧

mail -s test [email protected] < file #第三种方法,以file的内容为邮件内容发信

 其实你很容易发现mail从标准输入读取文件内容并发信,我也只想让你知道这一点,到此,第二个例子结束。

 3. 第三个例子,带附件的邮件

 如果你的系统里没有uuencode命令的话,请先安装sharutils(yum install sharutils)

 uuencode 需要两个参数,第一个是你要发送的文件(们),当然这个也可以用管道来做,第二个是显示的文件名

 uuencode /home/yfang/a.gif a.gif|mail -s pictest [email protected]

tar czf - /home/yfang/ | uuencode home.tgz |mail -s pictest [email protected]

 ps: 顺便补一句,slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。

转自:http://www.svn8.com/linux/accidence/20091016/10858.html

Linux下Mail命令收集2007-10-28 10:01系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。 在linux中输入mail,就进行了收件箱,并显示二十封邮件列表。

此时命令提示符为"&" unread 标记为未读邮件 h|headers 显示当前的邮件列表 l|list 显示当前支持的命令列表 ?|help 显示多个查看邮件列表的命令参数用法 d 删除当前邮件,指针并下移。 d 1-100 删除第1到100封邮件 f|from 只显示当前邮件的简易信息。 f num 显示某一个邮件的简易信息 f|from num 指针移动到某一封邮件 z 显示刚进行收件箱时的后面二十封邮件列表 more|p|page 阅读当前指针所在的邮件内容 阅读时,按空格键就是翻页,按回车键就是下移一行 t|type|more|p|page num 阅读某一封邮件 n|next|{什么都不填} 阅读当前指针所在的下一封邮件内容      阅读时,按空格键就是翻页,按回车键就是下移一行 v|visual 当前邮件进入纯文本编辑模式 n|next|{什么都不填} num 阅读某一封邮件 top 显示当前指针所在的邮件的邮件头 file|folder 显示系统邮件所在的文件,以及邮件总数等信息 x 退出mail命令平台,并不保存之前的操作,比如删除邮件 q 退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件,已阅读邮件会转存到当前用户家目录下的mbox文件中。如果在mbox中删除文件才会彻底删除。 在linux文本命令平台输入 mail -f mbox,就可以看到当前目录下的mbox中的邮件了。 cd 改变当前所在文件夹的位置 写信时,连按两次Ctrl+C键则中断工作,不送此信件。 读信时,按一次Ctrl+C,退出阅读状态。 -------------------------------------- Linux邮件命令用法

1. 将文件当做电子邮件的内容送出 语法:mail -s “主题”用户名@地址< 文件 例如: mail -s “program” user < file.c 将file.c

当做mail的内容,送至user,主题为program。

2. 传送电子邮件给本系统用户 语法:mail 用户名

3. 传送电子邮件至外地用户 语法: mail 用户名@接受地址 .../usr/lib/sendmail -bp ......“Mail queue is empty” ......mail ....

例如: [email protected] Subject : mail test : 键入信文内容 : : 按下Ctrl+D 键或. 键结束正文。 连按两次Ctrl+C键则中断工作,不送此信件。 Cc( Carbon copy) : 复制一份正文,给其他的收信人。

4. 检查所传送的电子邮件是否送出,或滞留在邮件服务器中 语法:/usr/lib/sendmail -bp 若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。 若为其他错误信息,表示电子邮件因故尚未送出。

=================================

Linux下mail使用技巧 登录LINUX系统后,经常会看到"you have mail",却苦于不知道如何查看,相信菜鸟们都遇到过,偶在网上用“linux mail"找了很久,但大都是介绍mail服务器的,黄天总算没负有心人,在洪恩在找到一篇介绍基础的文章,不敢独享。

系统提供了用户之间通信的邮件系统,当用户打开终端注册登录时发现系统给出如下信息:     you have mail.

    这时用户可通过键入mail命令读取信件:

    $ mail

    mail程序将逐个显示用户的信件,并依照时间顺序,显示最新的信件。每显示一段信件,mail都询问用户是否要对该信件作些处理。若用户回答d,则表示 删除信件;若仅按回车键,表示对信件不作任何改动(信件仍旧保存,下次还可读这一信件);若回答p,则要求重复显示信件;s filename表示要把信件存入所命名的文件;若回答q,表示要从mail退出。

    我们在本章的第一个例子中演示了如何写一封信,作为练习,你可送信件给自己,然后键入mail读取自己发的信件,看看会有什么效果。(发信给自己是一种设置备忘录的方法)。

    $mail frank 给自己写信

    subject: test

    This is a mail test

    CRL-d

    EOT

    $

    $mail 查看信件

    “/var/spool/mail/frank:”1 message 1 new

    >[email protected] Mar 25 11:00 13/403 “test”

    &

    Message 1:

    From frank Thu Mar 25 11:00:25 1999/3/25

    Received: (fromfrank@localhost)

    by xteam.xteamlinux.com(8.8.4/8.8.4)

    id LAA05170 for frank;Thu 25 Mar 1999 11:00:25 GMT

    Date: Thu,25 Mar 1999 11:00:25 GMT

    From:RHS Linux User <[email protected]>

    Message-Id:<[email protected]>

    To:[email protected]

    Subject:test

    Status:R

    This is a mail test

    &

    mail命令还有很多其它用法,例如发送事先准备好的信件,或一次送信给若干人。还可以用其它方法送信件。

另附message的使用技巧:

当Linux系统处于多用户的情况下,有时在终端上会突然显示出下述信息:

    Message from renee tty2…

    并伴随出现一阵嘟嘟响声。这是用户renee想和你通话而产生的信号。若你用如下命令响应他:

    $ write renee

    这就建立起了你和renee的通信线路,renee在他的终端上键入的内容同时显示在你的终端上,反之你键入的内容也显示在renee的终端上。为区分终 端上哪些是你输入的,哪些是renee输入的,我们使用如下通话协议:(o)表示一段话说完,并让对方发话,(oo)代表通话结束并退出程序。

    renee’s terminal: frank terminal:

    [renee@xteam renee]$ write frank

    $ Message from renee tty2…

    $write renee

    [renee@xteam renee]$Message from you tty1…

    did you forget lunch? (o)

    did you forgeet lunch? (o)

    ten minutes (o)

    ten minutes (o)

    ok (oo)

    ok (oo)

    ctl-d

    EOF

    Ctl-d

    EOF

    [renee@xteam renee]$ $

     除CTL-d键外,也可以使用DELETE退出write命令。

    如果你不愿意别人干扰你的工作,可以使用mesg命令拒绝接受通话。当你向一个拒绝接收通话的用户发写命令、或者向没有注册的用户要求通话时,write命令会显示不能通话的原因。

转自:http://edu.codepub.com/2010/0413/21978.php


最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然,今天在网上搜集了资料,加上自己修改,写了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动发送报警邮件。   脚本简单说明:用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=90)90%,就会自动用sendEmail命令发送报警邮件(邮件smtp、email等需自行修改成真实存在的)。   1、首先下载监测脚本(点击下载)或直接复制下面脚本代码存为disk_check.sh文件

#!/bin/bash
partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
critical=90
notification_email()
{
    emailuser='[email protected]'
    emailpasswd='password'
    emailsmtp='smtp.domain.com'
    sendto='[email protected]'
    title='Disk Space Alarm'
    /opt/sendEmail-v1.56/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd
}
crit_info=""
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
    if [ "${partition_list[((i+1))]}" -lt "$critical" ];then
        echo "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"
    else        
            if [ "${partition_list[((i+1))]}" -gt "$critical" ];then
                crit_info=$crit_info"Warning!!! ${partition_list[i]} used ${partition_list[((i+1))]}%\n"
            fi 
    fi
done
if [ "$crit_info" != "" ];then
    echo -e $crit_info | notification_email
fi

2、上传disk_check.sh文件到linux服务器的/opt目录下
 
3、给disk_check.sh添加可执行权限

[root@localhost /]# chmod 755 /opt/disk_check.sh

4、下载sendEmail邮件程序命令(点击下载),上传到服务器的/opt目录下
 
5、解压/opt/sendEmail-v1.56.tar.gz

[root@localhost /]# tar xvf /opt/sendEmail-v1.56.tar.gz

6、测试脚本/报警邮件是否运行正常,可以看到,有2个分区是正常的,显示OK!,没有超过设置的阀值,有一个分区使用量超过阀值了,并自动成功发送了报警邮件,再去我设置的收件邮箱,可以看到已经收到了这封报警邮件:

[root@localhost /]# sh /opt/disk_check.sh 
OK! /dev/shm used 1%
OK! /boot used 12%
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
  - First line must be received within 60 seconds.
  - End manual input with a CTRL-D on its own line.
Jul 01 17:32:44 localhost sendEmail[5585]: Message input complete.
Jul 01 17:32:44 localhost sendEmail[5585]: Email was sent successfully!

disk_check



7、最后,可以设置一个cron计划任务,让该脚本每隔1小时运行一次

[root@webmail /]# crontab -e

在cron里添加下面一行即可

*/60 * * * * /opt/disk_check.sh
参考下

nux系统默认开启发送邮件功能,但只能linux用户间发送邮件,不能发送外部邮件。
方法:
1. 查看sendmail进程是否开启。你在shell输入 ps -aux | grep 'sendmail'
2. 使用mail命令发送邮件,例如发送给root用户
mail -s 'send mail' root 按回车键
3. 输入邮件内容
4. 按ctrl+d发送,按ctrl+c退出
5. 切换到root用户,你就可以看到一封邮件,邮件存放在/var/mail/root文件里
mail命令用法:mail -s '邮件标题' 用户名 
你可以搜索mail命令
是否可以解决您的问题?

1、编辑用户Home目录下的.muttrc文件,设置发信环境。

复制代码代码如下:

# cat /root/.muttrc 
set envelope_from=yes
set [email protected]
set realname="Owinux"
set use_from=yes
set rfc2047_parameters=yes
set charset="utf-8"

2、发信脚本

复制代码代码如下:

# cat automail.sh 
#!/bin/sh
# automail.sh
DIR=/root/owinux
mailcontent=$DIR/mailcontent
> "$mailcontent"
echo -e "owinux,您好!\n" >> $mailcontent
echo -e "\t附件为 `date +%Y-%m-%d` 设备日检报告,敬请查收。" >> $mailcontent
cat mailcontent | /usr/bin/mutt -s "设备日检报告" -a /root/owinux/report.xls [email protected] -c [email protected] -c [email protected]

3、简要说明:
 
-s:指定主题
-a:附件
-c:抄送,需要抄送多人的话,须使用多个 -c 选项
 
使用上面的发信环境可以保证在页面查看邮件的时候,附件名不出现乱码。
其中 .muttrc 的 "set from"可以随便设置,可以是不存在的邮箱地址,当然正确的最好。
比如:

复制代码代码如下:

不过也并不是你设置的正确的邮箱地址就一定能发送成功。

复制代码代码如下:

我新注册了一个 [email protected],然后将 set from 设置为[email protected],就没有成功。
原因在于126邮箱报了 550 MI:SPF 错误,连接到126 企业退信的常见问题? 发现

复制代码代码如下:

550 MI:SPF 发信IP未被发送域的SPF许可。  

猜你喜欢

转载自blog.csdn.net/study4034/article/details/50475021
今日推荐