借用smtp.qq.com发邮件

至于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" [email protected]

可是发现在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" [email protected]

服务器状态监控脚本邮件发送问题探究:

服务器状态文件生成服务器语言:

[[email protected]_174_31 /data/home/report]# echo $LANG

en_US

服务器状态处理服务器语言:

[[email protected] forilen]# echo $LANG

en_US.UTF-8

邮件发送核心脚本:

check(){
    srvid=$1
    srvname=$2
    grpname=$3
    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" [email protected]

#       cat server_$srvid.txt >>./srv_head.txt
#       echo "1" >>./srv_head.txt
#       cat srv_head.txt | /bin/mail -s "DISKWARMING_$ts" [email protected]

    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(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"

时间: 2024-10-21 06:24:48

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

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

1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2.1 参照官方的设置即可http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371 ps:填写的邮箱密码是独立密码:需要注意的就是SSL链接要勾选;smtp端口是465 3.Java中代码配置 3.1 发送邮件配置代码 public class MailUti

C# 用qq邮箱发邮件

一.在企业的QQ邮箱中开启POP3/SMTP服务 开启服务时,授权密码保存好. 二.示例 public static string UserName = ""; // 企业邮箱 public static string UserPass = ""; //邮箱开启POP3/SMTP服务,开启后的授权码密码 /// <summary> /// 向用户发送邮件 /// </summary> /// <param name="Rece

Telnet 连接smtp协议手动发邮件

下面实验以QQ邮箱为例(比较多人用,其它邮箱也一样) Step1.打开CMD 输入:telnet SMTP服务器 SMTP端口地址 连接smtp服务器 Step2. 输入:helo 内容 (向它(指服务器)打招呼) 返回250即OK 输入:auth login(告诉它,你要登录) 334 VXNlcm5hbWU6(username:)[base64编码解码] 输入你编码好的账号 334 UGFzc3dvcmQ6(password:) 输入你编码好的密码 235 Authentication su

Java Mail---SMTP协议-Java发邮件(带附件)演示过程

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] JavaMail-API简介: 邮件客户端的主要任务是向邮件服务器发送邮件,以及接收来自邮件服务器的邮件. Sun公司制定了一套API,它封装了邮件通信的各种协议.为Java开发者提供了收发电子邮件的公共接口. 需要的jar包 mail.jar和activation-1.1.0.jar链接: https://github.com/chenhaoxiang/Java/tree/ma

把项目放到服务器上面,然后发邮件的时候timeout或者发送超时或者请求超时

基本是端口没有开放的问题   服务器都有安全组  里面放行一下25端口 腾讯云需要单独开通25端口  很坑   这个问题百度好久才发现的! 腾讯云25端口默认是关闭的,想要使用25端口邮件服务需要解封25端口,服务器百科网分享开通腾讯云25端口的方法教程: 解决25端口的方法 1.登录到腾讯云管理控制台: 2.鼠标移动到顶部菜单栏你的用户名上,自动弹出下拉,点击"25端口解封" 如下图所示: 腾讯云25端口解封 3.点击"申请 25 端口解封" 如下图所示: TCP

CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决

其实错误原因并不是因为此错误,经检测,邮件服务器返回的真实错误是 501 mail from address must be same as authorization user .只因为同时返回了 503 Error: need MAIL command 和 503 Error: need RCPT command ,而ECSHOP只提示了最后一行错误. <br>220 smtp.qq.com Esmtp QQ Mail Server<br>250-smtp.qq.com250-

Linux搭建smtp服务器+laravel5.2发邮件配置

/** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.laravel5.2通过Mail实现发邮件的功能 * 2.搭建自己的smtp服务器 * 3.修改mail的配置,将主机和账号修改为自己的smtp代理服务器 * * 相关技术基础(php基础知识.laravel5.2框架的简单操作.Linux运维基础知识) */ /** * 1.laravel5.2通过

ubuntu和centos下使用外部smtp发邮件

centos上: 第一步:在qq邮箱设置-->账户中开启pop3/smtp服务,并设置独立密码 第二步:yum install -y mailx 第三步:vim /etc/mail.rc 在文件最后添加你的邮箱信息: set [email protected]set smtp=smtp.qq.comset smtp-auth-user=82312924set smtp-auth-password=Your passwordset smtp-auth-login 第四步:就能直接使用echo &quo

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们使用qq服务器发送 需要先到邮箱里设置独立密码(必须), 然后开启 SMTP/POP3服务.然后用qq手机安全中心扫一扫会给一个授权码, 在代码中要填写的密码是这个授权码, 而不是邮箱密码! 示例代码: # python