至于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=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=123456
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-6.el6.x86_64
# ll /bin/mail*
lrwxrwxrwx. 1 root root      5  7月 22 2011 /bin/mail -> mailx
-rwxr-xr-x. 1 root root 390424  2月 16 2010 /bin/mailx
# mail -V
12.4 7/29/08  

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

# rpm -qa|grep mailx
mailx-8.1.1-44.2.2
# ll /bin/mail*
-rwxr-xr-x 1 root mail 84856 Jun  6  2007 /bin/mail
lrwxrwxrwx 1 root root     4 Apr 12 18:03 /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=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=123456 5  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=$1srvname=$2grpname=$3root=`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/nullif [ $root -gt $deadline -o $data -gt $deadline ]thenecho >>mail.log
#       cat server_$srvid.txt >>mail.log
#       cat server_$srvid.txt >>mail.txtecho -e "$grpname" >./srv_head.txtecho -e "$srvname" >>./srv_head.txtcat srv_head.txt server_$srvid.txt >>mail.logcat server_$srvid.txt |/bin/mail -s "DISKWARMING_$ts_$grpname_$srvname" forilen@dawx.com#       cat server_$srvid.txt >>./srv_head.txt
#       echo "1" >>./srv_head.txt
#       cat srv_head.txt | /bin/mail -s "DISKWARMING_$ts" forilen@dawx.comfirm 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(4) NOT NULL auto_increment,`group_name` varchar(100) default '0',`group_status` tinyint(4) NOT NULL,`appid` varchar(20) default NULL,PRIMARY KEY  (`group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 | 

解决方案:
在shell脚本前面加上: export LANG="en_US.UTF-8"

转载于:https://www.cnblogs.com/forilen/p/4249474.html

借用smtp.qq.com发邮件相关推荐

  1. python使用qq邮箱发邮件

    发现QQ邮箱是个变态的东西...普通网上的教程根本无法搞定这个问题 于是写了这个,用于帮助大家使用python发邮件遇到的问题 第一步: 开启QQ第三方登录,参考文章 https://jingyan. ...

  2. Postfix配置QQ邮箱发邮件

    配置QQ邮箱发邮件 1.这里使用了QQ邮箱的SMTP,需要做以下配置 2.qq邮箱通过生成授权码来设置密码  3.关闭服务器的sendmail服务,开启postfix服务 4.创建证书文件  root ...

  3. 利用jmail qq邮箱发邮件 报错 解决方法

    利用java的jmail,登录qq邮箱发邮件时遇到下面几个问题,分享一下解决方法. 1. qq需要使用ssl  解决方法:使用有ssl安全认证的代码 <span style="font ...

  4. 【Python用QQ邮箱发邮件】

    学习目标:Python用QQ邮箱发邮件 学习内容: 1:到入库 import smtplib from email.message import EmailMessage from datetime ...

  5. JAVA代码给QQ邮箱发邮件

    通过java代码给qq邮箱发邮件 使用发送邮箱所需要2个jar包 activation.jar    mail.jar 下载链接:https://pan.baidu.com/s/1YA3jgmUNzW ...

  6. 利用telnet SMTP给QQ邮箱发邮件

    学习计算机网络自顶向下,SMTP协议 步骤一:开启Windows的telnet客户端 打开"控制面板"中"程序"中的"启用或关闭Windows功能&q ...

  7. 微信企业邮箱服务器配置错误,解决腾讯企业邮箱smtp.exmail.qq.com发邮件错误

    在程序开发中经常会用到php发电子邮件,在腾讯申请了企业邮箱后,一直用得好好的.不过好像最近腾讯企业邮箱升级更新了,用smtp服务器一发邮件就提示"Cannot connenct to re ...

  8. 利用 telnet 命令测试 SMTP 服务(QQ邮箱发邮件)

    文章目录 1 开通 QQ 邮箱的 SMTP 服务 2 开启 telnet 客户端 3 使用 CMD 利用 telnet 命令测试 SMTP 服务 1 开通 QQ 邮箱的 SMTP 服务 2.找到&qu ...

  9. linux telnet qq邮箱,用telnet测试给qq邮箱发邮件,中途可能腾讯要你开启smtp服务器...

    telnet smtp.qq.com 220 smtp.qq.com Esmtp QQ Mail Server helo localhost//与qq服务器握手 250 smtp.qq.com aut ...

最新文章

  1. 计算机网络教会我们什么,日久见人心现实教会了我们什么叫人心的说说
  2. Office365 Exchange Hybrid No.15 DNS切换及邮件传输排错
  3. Redux源码浅析系列(二):`combineReducer`
  4. mysql dump xtrabackup_MySQL--备份恢复【Mysqdump+xtrabackup(XBK)】
  5. java 判断是否大于指定版本号
  6. rocketmq4.1.0部署及流量切换实践
  7. java开发中实际遇到的问题总结_内行总结:装修中最容易遇到的16个问题及其解决方式!...
  8. java常用代码,Java常用代码
  9. 【轻松一刻】计算公式:为什么我们都是猪
  10. MySQL(9)主从复制和读写分离
  11. C/C++的const区别
  12. 桌面虚拟化之本地模式(离线模式)大比拼
  13. 【推荐】JSON在线格式化工具
  14. bitbake的原理介绍, 使用方法, 编译脚本的编写方法
  15. Linux那些让你虎躯一震的命令
  16. 自建网站教程!如何用云服务器搭建个人网站?
  17. idea风格ui java_IDEA界面太丑??尝试一下这几个风格
  18. linux ks脚本,Linux ks.cfg 详解
  19. 新走遍美国第一遍总结
  20. Tailwind 真香

热门文章

  1. [生存志] 第31节 盘古开天地
  2. vantui van-field输入框右边加单位
  3. matlab编写关于离散的傅里叶变换
  4. Strassen矩阵乘法(C++)
  5. 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件
  6. 哈工大数据库系统概论(1)——什么是数据库管理系统(DBMS)
  7. 计算机保密管理使用情况表,涉密计算机保密管理情况检查表
  8. 多线程(六)线程的五大生命周期,六个状态,七种基础状态
  9. 字符串左旋右旋——三步旋转法和移相法
  10. 单片机MCU51系列RTOS多任务超微操作系统精髓 简单实现 汇编及C语言混合 keil9.0工程源码