天天看点

Linux自带发送邮件的方法

下面是一个检测日志文件(catalina.out)大小的脚本:

1

2

3

4

5

6

7

8

9

10

11

12

<code>#!/bin/bash</code>

<code>#Author:Chris Chan</code>

<code>#Written for check catalina.out</code>

<code>size=$(</code><code>du</code> <code>-m catalina.out| </code><code>awk</code> <code>'{print $1}'</code><code>)</code>

<code>echo</code> <code>catalina.out的大小是:$size</code>

<code>if</code> <code>[ $size -gt 19000 ]</code>

<code>then</code>

<code>        </code><code>rm</code> <code>-rf catalina.out</code>

<code>        </code><code>echo</code> <code>"警告,测试环境cms的catalina.out的大小已经超过18.5G,已经被删除。"</code> <code>| mail -s </code><code>"Warning"</code> <code>[email protected]</code>

<code>else</code>

<code>        </code><code>exit</code>

<code>fi</code>

新的知识点!

用shell发邮件的方法很简单,格式如下:

echo "邮件内容" |mail -s "邮件标题" 目标邮箱地址

但是有的时候可能会报错,比如这样的现象:

<a href="https://s1.51cto.com/wyfs02/M00/8D/8F/wKioL1ihmEGwpPu-AAB9Nb9SX2M248.png" target="_blank"></a>

遇到这样的现象不要慌,其实邮件已经发送成功了,但是之所以会有这样的报错,原因就是当前mail服务不支持ipv6,那么我们先#vim  /etc/postfix/main.cf,把里面的inet_protocols = all 修改为 inet_protocols = ipv4,然后#/etc/init.d/postfix restart,就好了。

如果你觉得邮件内容需要更多一些,我们可以使用这样的方法:

<code>mail -s </code><code>"邮件标题"</code> <code>目标邮件地址 (输入回车)</code>

<code>"邮件内容1"</code>

<code>"邮件内容2"</code>

ctrl +d 就是把邮件发出。

效果如图:

<a href="https://s3.51cto.com/wyfs02/M00/8D/91/wKiom1ihmb6RuzTnAACUCXUvFqw821.png" target="_blank"></a>

但是要注意!这种方法发送163和新浪的邮箱是可以的,发送qq邮箱会被默认转移到垃圾邮件里去,需要手动信任一下。

如果有的时候,系统则有这样的报错:“ send-mail: fatal: parameter inet_interfaces: no local interface found for ::1”。

那么就去#vim /etc/postfix/main.cf,把“inet_interfaces = localhost”注释,把“inet_interfaces = all”解开注释: 

<code>inet_interfaces = all</code>

<code>#inet_interfaces = $myhostname</code>

<code>#inet_interfaces = $myhostname, localhost</code>

<code>#inet_interfaces = localhost</code>

<code># Enable IPv4, and IPv6 if supported</code>

<code>inet_protocols = all</code>

然后重启一下postfix,#service postfix start即可。

 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1897416

继续阅读