至于sentmail和postfix的配置有多么麻烦学生在这里就不多废话了...反正是配置了N个小时,最终弄的头晕眼花也没弄好...

下面的方法可以让你完全摆脱这两个工具...当然,你要是想做邮件服务器的话就令当别论了...你要是只想让服务器自动发个邮件什么的,用下面的就行了

通常的做法都是,关闭本机的sendmail服务或者postfix服务,

#执行下面的命令,各位大侠都对号入座吧
#sendmial
service sendmail stop
chkconfig sendmail off
#postfix
service postfix stop
chkconfig postfix off

#再狠一点就直接卸载吧..

yum remove sendmail
yum remove postfix
 然后修改/etc/mail.rc,增加一下类似N行,指定外部的smtp服务器地址、帐号密码等。
# vi /etc/mail.rc
set from=@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=
set smtp-auth-password=sbsbsbsb
set smtp-auth=login

然后通过命令来发送邮件,echo  hello word | mail -s " title" 123456@qq.com

可是发现在RHEL6运行是没有问题,在RHEL5下,mail命令始终是调用本地的sendmail服务来发送邮件的。
到底RHEL6和RHEL5下的mail和mailx又有着什么关系呢?
RHEL6下,mail 链接到 mailx 命令,mailx版本为12.4
# rpm -qa|grep mailx
mailx-12.4-.el6.x86_64
# ll /bin/mail*
lrwxrwxrwx. root root 7月 /bin/mail -> mailx
-rwxr-xr-x. root root 2月 /bin/mailx
# mail -V
12.4 //

RHEL5下,则发现了一些不同,mailx  链接到  mail 命令,mailx版本为8.1

# rpm -qa|grep mailx
mailx-8.1.-44.2.
# ll /bin/mail*
-rwxr-xr-x root mail Jun /bin/mail
lrwxrwxrwx root root Apr : /bin/mailx -> mail
# mail -V 此处运行就会出错,没有-V这个参数

也就是说,在RHEL6\5下,运行mail 和mailx,实际上都是一个命令,而mail版本不同,导致了RHEL5下mail命令无法调用外部SMTP服务器。

安装mailx新版本可解决此问题。
下载地址:http://www.filewatcher.com/m/mailx-12.4.tar.bz2.271482.0.0.html

下载后,# tar jxvf mailx-12.4.tar.bz2 9# cd mailx-12.4# make# make install UCBINSTALL=/usr/bin/install

查看mailx程序默认安装位置、及版本

# whereis mailx mailx: /usr/local/bin/mailx /usr/share/man/man1p/mailx.1p.gz # mailx-V  12.4 7/29/08
安装后的mailx使用的是 /etc/nail.rc 配置,不是 /etc/mail.rc 这个需要注意下。vi编辑,按下G  ,然后在行尾添加如下N行
 # vi /etc/nail.rc  (看出亮点了吗?)
set from=@qq.com
set smtp=smtp.qq.com
set smtp-auth-user= set smtp-auth-password=sbsbsbsb
set smtp-auth=login

然后通过命令来发送邮件

echo  hello word | mailx -v -s " title" 123456@qq.com 
 
服务器状态监控脚本邮件发送问题探究:
服务器状态文件生成服务器语言:
[root@VM_174_31 /data/home/report]# echo $LANG
en_US
服务器状态处理服务器语言:
[root@localhost forilen]# echo $LANG
en_US.UTF-8
 
邮件发送核心脚本:

check(){
srvid=$
srvname=$
grpname=$
root=`cat server_$srvid.txt | awk '{print $9}' | awk -F% '{print $1}' `
data=`cat server_$srvid.txt | awk '{print $10}' | awk -F% '{print $1}' `
mysql -uroot -p1234 -e "load data infile '$path/server_$srvid.txt' into table serverdb.server_status;" &>/dev/null
if [ $root -gt $deadline -o $data -gt $deadline ]
then
echo >>mail.log
# cat server_$srvid.txt >>mail.log
# cat server_$srvid.txt >>mail.txt
echo -e "$grpname" >./srv_head.txt
echo -e "$srvname" >>./srv_head.txt
cat srv_head.txt server_$srvid.txt >>mail.log
cat server_$srvid.txt |/bin/mail -s "DISKWARMING_$ts_$grpname_$srvname" forilen@dawx.com # cat server_$srvid.txt >>./srv_head.txt
# echo "" >>./srv_head.txt
# cat srv_head.txt | /bin/mail -s "DISKWARMING_$ts" forilen@dawx.com fi
rm server_$srvid.txt* -f
}
由于两个服务器的编码格式不同,导致文件在后面追加的时候出现编码异常,mail无法解析,导致发送异常附件(tcmime.744.744.888.bin)。
grpname所存数据库编码:
mysql> show variables like '%char%';
+--------------------------+-----------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /data/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------+ | ser_group | CREATE TABLE `ser_group` (
`group_id` tinyint() NOT NULL auto_increment,
`group_name` varchar() default '',
`group_status` tinyint() NOT NULL,
`appid` varchar() default NULL,
PRIMARY KEY (`group_id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8 | 
解决方案:
在shell脚本前面加上:export LANG="en_US.UTF-8"

借用smtp.qq.com发邮件的更多相关文章

  1. java mail使用qq邮箱发邮件的配置方法

    最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...

  2. python 向qq邮箱发邮件

    #coding:utf-8 ''' Created on 2017-1-12 @author: xiaochun ''' import smtplib from email.mime.text imp ...

  3. C# 用qq邮箱发邮件

    一.在企业的QQ邮箱中开启POP3/SMTP服务 开启服务时,授权密码保存好. 二.示例 public static string UserName = ""; // 企业邮箱 p ...

  4. 解决laravel使用QQ邮箱发邮件失败

    在 laravel 中使用 QQ 发送邮件的时候莫名其妙的出现了如下错误:Connection could not be established with host smtp.exmail.qq.co ...

  5. Discuz! X3.4 邮件设置 使用qq邮箱发邮件

    1. 在qq邮箱->设置中,获取授权码 2. 在discuz后台配置基础信息 3.  在服务器的防火墙中添加规则,允许访问465端口

  6. 发邮件 文字+ 附件的方法(QQ or 网易 邮箱)

    #coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIME ...

  7. EDM营销算法:python自动批量发邮件

    EDM营销:全称Email Direct Marketing,即电子邮件营销.企业可以通过使用EDM软件向目标客户发送EDM邮件,建立同目标顾客的沟通渠道,向其直接传达相关信息,用来促进销售.EDM软 ...

  8. 用python发邮件实例

    发QQ邮件 首先确认发件方是否打开了SMTP服务,去QQ邮箱的设置中查看,如果没有请自行开启. from email.header import Header from email.mime.text ...

  9. 发邮件的python脚本

    1. 编写一个最简单的发邮件的python脚本   #coding: utf-8 import smtplib from email.mime.text import MIMEText from em ...

随机推荐

  1. JUnit 3.8 通过反射测试私有方法

    测试私有(private)的方法有两种: 1)把目标类的私有方法(修饰符:private)修改为(public),不推荐,因为修改了源程序不佳 2)通过反射 (推荐) 代码演示: 目标程序 Priva ...

  2. MSSQL查找前一天,前一月,前一年的数据,对比当前时间记录查找超过一年,一月,一天的数据

    ,') ,GETDATE()) ,') ,GETDATE()) ,') ,GETDATE()) ,GETDATE())) ,GETDATE())) ,GETDATE()))

  3. 在Form中调用请求并直接打印结果

    请求打印,一般都是需要提交请求,然后在请求界面查看输出,将打印内容显示在浏览器上 现可在通过调用请求后直接打印到浏览器上, 实现步骤如下:   ---设置请求打印模板      l_req_bool ...

  4. Bootstrap 3 Menu Generator

    Bootstrap 3 Menu Generator

  5. Quartz+SpringMVC实现web定时管理任务

    代码地址如下:http://www.demodashi.com/demo/13978.html 使用背景 相信大家在工作过程中,肯定会遇到很多任务定时执行,修改定时任务的时间,执行一次定时任务等等.下 ...

  6. PHP-根据字符串和所用字体计算字符串所占宽高

    今天由于用GD画图, 需要把一段文字在一个框内居中, 但是文字的宽度如果用strlen($str) * $font_size来计算的话, 由于文字不是等宽高的, 所以会导致偏离, 最后选用的GD库的i ...

  7. CDH quick start VM 中运行wordcount例子

    需要注意的事情: 1. 对于wordcount1.0 ,按照http://www.cloudera.com/content/cloudera/en/documentation/HadoopTutori ...

  8. 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码

    详解C#泛型(二)   一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...

  9. resharper警告 :linq replace with single call to FirstOrDefault

    使用resharper时对linq使用的FirstOrDefault 一直产生一个警告,

  10. hdu 2066 一个人的旅行(dijkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...