• project mail


    FoxMail  贝叶斯反垃圾邮件过滤设置

     

    百度邮件新闻订阅

    http://newsalert.baidu.com/na?cmd=0

     

    标准C程序员 玩邮件系统

    熟练掌握 C/C++ 编程语言,尤其是标准 C ;

    熟练掌握Resin、Tomcat等应用服务器的配置;

    熟悉 Linxu/FreeBSD 操作系统架构;

    熟悉 cgic/cgicc+Apache 的 CGI web 编程模式;
    熟悉 HTTP 协议,有一定的 HTML 和 Javascript 脚本编辑能力;

    熟悉一至两种数据库,如Oracle,SQL SERVER,My SQL,DB2

     

    JavaMail 1.4.5  March 23, 2012

    http://www.oracle.com/technetwork/java/javamail/index.html

    http://www.oracle.com/technetwork/java/index-138643.html

    http://showlike.iteye.com/blog/801781

     

    系统CPU消耗自动化邮件发送

    观察si和so值是否较大(swap in 和 swap out);

    观察b参数(等待资源的进程数)和wa参数(I/O等待中所占用的CPU时间的百分比,高于30%时,则I/O负荷较大)

    http://zhidao.baidu.com/question/252503810.html&__bd_tkn__=6dbf1438382198254553a433aaae33ac854f81ed8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157a59ff379d64a1f95e0f03de0125277dd03bb97a3c01ed77792cc3f8db49317b015a472ac464783b4cbdafdc9a0888accbdc8c09cb322aff48aa
    8点到18点是10个小时,3分钟采样一次一个小时是60/3=20次,10个小时共200次,
    设个cron job每天8点跑这个命令: vmstat 180 200 > /tmp/CPUUsage_$(date +%Y%m%d).log
    3分钟输入一次,然后CPU的值与70%比较,如果大于这个值就发邮件出来。
    何谓70%?使用率大于70%?你需知道vmstat出来的cpu信息有4种状态:
     kthr          memory                         page                       faults           cpu       time
    ------- --------------------- ------------------------------------ ------------------ ----------- --------
      r   b        avm        fre    re    pi    po    fr     sr    cy    in     sy    cs us sy id wa hr mi se
      1   1     784933       7866     0     0     0     3      4     0    22    493   312  0  0 99  0 03:53:11
    us是用户进程使用率,sy是系统进程使用率,id是空闲,wa是等待资源的花费
    按你说的应该应该是如果id的值小于30吧(其它开销大于70)就发邮件,可以试试这样每3分钟执行一次:
    vmstat -wt |tail -1>> /tmp/vmstat.$(date +%Y%m%d).log
    (( $(tail -1 /tmp/vmstat.$(date +%Y%m%d).log|awk '{print $(NF-2)}') < 30 )) && \
    tail -1 /tmp/vmstat.$(date +%Y%m%d).log|mail -s "Subject" "yourMailBox@domain"

     

    http://camel.apache.org/mail.html

    Protocol Default Port Number
    SMTP25
    SMTPS465
    POP3110
    POP3S995
    IMAP143
    IMAPS993

     

    # 查看邮件处理日志
    [root@SmartEDM3 ~]# grep "sntest_f" /var/log/maillog | wc -l
    # 查看邮件处理队列
    [root@SmartEDM3 ~]# postqueue -p|grep 'test.s*****.com'|wc -l
    # 查看邮件处理队列
    [root@SmartEDM3 ~]# ls -l /var/spool/postfix/active/ | wc -l

    [root@SmartEDM3 ~]# postqueue -p | wc -l

     

     

    postfix //管理队列

    postqueue -p //显示邮件队列
    postqueue -f //要求postfix立刻投递滞留在队列里的邮件
    postsuper -d ALL //删除邮件队列中的所有邮件注:有可能是误删除或删除了不该删除的信,所以谨用此命令。
    postquper -h 邮件队列ID(如DBASHSN),//执行之后,你会发现,该邮件的queue ID 多了一个感叹号,如果想再次投递该邮件,
    把-h改成-H即可,postfix就会按照正常顺序再次投递该邮件;
    postsuper -r ALL //重新给邮件排队,得到一个新的queue ID,再次投递邮件;
    postcat -q 邮件队列号(如DBA15HA9) //查看该邮件内容;

     

     

    三种邮件服务器的比较

    http://publish.it168.com/2007/0703/20070703008102.shtml

    Exchange Server

    Imail Server

    WebEasyMail(国产)

     
    Sendmail邮件服务器搭建与配置笔记
    http://myhat.blog.51cto.com/391263/410414
     

    http://product.it168.com/list/b/index.aspx?typeid=0525&brandid=6661&BackUrl=http://product.it168.com/list/b/05256661_1.shtml&RefUrl=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fhl%3Dzh-CN%26client%3Dfirefox-a%26rlz%3D1R1GGGL_zh-CN%26hs%3DC7w%26newwindow%3D1%26q%3Dcoremail%25E6%258A%25A5%25E4%25BB%25B7%26btnG%3DGoogle%2B%25E6%2590%259C%25E7%25B4%25A2%26aq%3D4%26oq%3Dcorem

    magic/华美 (39)
    Foxmail (3)
    MDaemon (4)
    Coremail/盈世 (9)
    IPSWITCH (5)
    亿邮/eYou (2)
    Turbomail/拓波 (7)
    NOVELL (5)
    U-MAIL (31)
    金笛 (8)

    目前邮件服务器软件品牌 12 个

    http://product.pconline.com.cn/email_soft/coremail/gz/?frame

     

    基于网页的免费电子邮件服务商:
    Hushmail: http://www.hushmail.com/
    Lycos Email: http://mail.lycos.com/
    Opera Mail: http://www.operamail.com/scripts/common/index.main?signin=1&lang=us

     

    电子邮件营销平台 EDM

    http://www.richeninfo.com/index.html

    上海锐至
    Smart EDM 电子邮件营销平台是上海锐至自主开发的基于电子邮件方式、帮助用户提高客户服务质量和提升营销管理能力的软件产品。上海锐至是在综合分析电信运营商、银 行、公共服务部门等大型机构的客户服务和客户营销方面的实际需求,凭借优秀的业务理解和自身软件开发能力自主研发Smart EDM平台,能够为用户提供基于电子邮件方式的整理营销管理解决方案。

    Smart EDM 产品目标

    1.提高客户服务质量
    提高客户服务意识以及服务质量成为吸引以及保留客户的重要手段,邮件因其简易、便捷、快速的特点成为当今客户服务最重要方式之一

    2.提升企业营销能力
    及时跟踪反馈,全方位自动完成客户行为的跟踪分析,使得电子邮件成为增强市场营销能力的有力手段

    3.降低运营成本
    电子邮件的成本远远低于传统纸质邮件的成本,在提高客户服务,增强市场营销的同时,降低运营成本

       

    传统邮件营销的弊端

    传统的邮件营销(DM)存在如下不可克服的问题:
    1.发送模版制作困难,无法进行图文互动
    2.邮件内容固化,无法根据客户的个性化特征进行个性化邮件内容生成
    3.不能得知用户收到邮件后的行为,无法根据用户的行为为营销部门提供后续营销依据
    4.邮件的定制及发送介入环节多,需要投入的维护力量多,差错率高
    5.无法和短信、彩信等系统接口

    由于缺乏灵活的邮件定制及生成机制,缺乏定向营销的分析管理机制,导致无法在灵活快速生成邮件内容的基础上对邮件的发送结果进行营销分析,无法为后续客户营销提供参考。

    Smart EDM 方案特点
    营销邮件内容灵活获取(如账单信息、广告宣传信息等)
    邮件模版的在线编辑及上传
    邮件内容的灵活自动生成
    高可靠性的邮件群发
    有效的客户行为跟踪和营销分析

    Smart EDM 功能框架
    上海锐至Smart EDM 系统功能框架:

    系统前端界面: 电子邮件营销平台系统的工作界面;
    文件管理:对电子邮件营销平台系统中的文件进行管理,包括相关客户信息、邮件数据文件(如账单等)、或者附件;
    模版管理:对邮件的模版进行管理,提供方便的在线模板编辑和灵活的管理功能;
    任务管理:对营销邮件群发任务进行管理、任务属性配置等;
    营销跟踪:对电子邮件投递的结果以及客户的行为进行跟踪分析,作为营销依据;
    邮件投递:将组装好的邮件通过邮件方式自动群发给客户,并可以选择短信、彩信等通知;
    统计分析:对邮件发送、营销跟踪情况的进行统计分析,生成统计报表 系统管理:主要用于对电子邮件营销平台系统的正常运转进行支撑
       

    Smart EDM 系统特点

    1.完善的用户、角色管理
    部门/用户管理,角色的灵活定制,赋予不同用户不同的角色,使其具有不同的权限

    2.灵活的模版定制
    可以通过系统提供的在线编辑器编辑模版,也支持模板上传;
    模版与数据文件关联,模版中的变量灵活选取,包括公用变量和数据文件对应的变量;
    模版中支持图片、链接、表格、Flash 等灵活的插入;
    可以在数据文件中指定不同的数据对应的模版ID,也可以根据数据文件对应模版

    3.灵活的群发管理
    对于每一次群发的邮件,系统作为任务进行处理,可以对任务的属性进行不同定义;
    任务按照任务属性自动执行,系统会根据任务定义所采用的模版、邮件接收的名单自动发送邮件;
    系统能够对任务执行情况进行跟踪,包括任务的发送情况等,便于管理和监控等

    4.完善的营销管理
    发送情况分析报表;
    任务执行情况分析报表;
    邮件打开情况分析报表;
    邮件链接点击情况分析报表

    5.高适应的接口管理
    业务系统可以将原始的数据信息(如帐单信息)通过Ftp 或者指定的其他方式传送到邮件营销平台,进而完成邮件内容的生成;
    新增的接口只需要在邮件营销平台系统中定义好新增系统的数据接口,成熟度高,而无需对系统进行修改;
    可以根据业务系统的相关接口要求,进行二次开发

    6.高可靠性与稳定性
    基于Linux 平台;
    内容生成与发送采用模块化、多线程设计方式,根据发送的容量进行灵活的扩展;
    系统设计充分考虑大量邮件群发,满足运营商电子帐单发送高性能要求
    邮件营销平台与其他系统的接口采取松耦合的方式,与核心系统不处于同一个网络范围内,在确保核心业务系统安全的前提下开展邮件营销业务


    Smart EDM 典型应用
    Smart EDM 可适用与所有邮件营销领域,特别适合:
    1.电信运营商,如中国电信、中国移动、中国联通等
    2.金融机构,如银行、证券、基金公司、保险司等
    3.其他面向大规模客户营销的单位或机构,如大型零售商等等
    4.公共服务部门,如共用事业单位

     

     

     

    IBM Lotus Notes 7 帮助文档

    http://ms1.cns*****.com/help/help7_client.nsf/Main?OpenFrameSet

     

    Microsoft Exchange/Outlook

     

    Novell Groupwise

     

    mail_conf

    pop:192.168.130.41

    smtp:192.168.130.41

     

    pop:ms1.cns*****.com  / mail.cns*****.com

    smtp:ms1.cns*****.com / mail.cns*****.com

     

    Evolution 2.26.1

    Groupware Suite

    Copyright © 1999 - 2009 Novell, Inc. and Others

    开始使用
    Evolution 窗口左侧是侧边栏,其中包含了您全部的邮件文件夹。您可在侧边栏下方找到日历、联系人、任务和邮件的相应按钮。

    要获得 Evolution 的完整指南,请从帮助菜单中选择目录,或者按 F1 键。
    新特性
    Evolution 2.0 支持连接到 Novell GroupWise 服务器(6.5.3 或更新版本),还可支持 Exchange 2000/2003。Evolution 2.0 的其它新特性包括垃圾邮件过滤、S/MIME 安全、改进的脱机 IMAP、NNTP(新闻)支持、Web 日历显示,层叠的日历,以及为访问联系人、日历和任务数据所提供的全新开发接口。
    错误报告
    错误应该报告至 http://bugzilla.ximian.com
    更多信息
    您可以订阅下面的 Evolution 用户邮件列表(英语) http://lists.ximian.com/mailman/listinfo/evolution。关于 Evolution 项目的信息可在 http://www.gnome.org/projects/evolution 找到。
      此致
    敬礼
    Evolution 团队
    evolution@ximian.com

     

    使用命令行收发邮件

    http://meiyoudao.iteye.com/blog/817995

     

    一.登录SMTP的sohu服务器(发送邮件) 
    C:\Documents and Settings\meiyoudao>telnet smtp.sohu.com 25  
    220 95.62 ESMTP ready 


    2.连接上之后.和服务器打个招呼(输入内容:ehlo meiyoudao) 

    ehlo meiyoudao  

    250-95.62 
    250-AUTH PLAIN LOGIN 
    250 STARTTLS 

    3.之后告诉服务器,你要登录邮箱(输入内容:auth login) 

    auth login  

    334 VXNlcm5hbWU6 
    4.输入经过base64encoder 处理的用户名(输入用户名内容:bWVpeW91ZGFv) 
    bWVpeW91ZGFv  

    5.输入经过base64encoder 处理的密码(输入用户密码内容:不告诉你) 
    MTExMTExMTE=  
    235 2.0.0 OK 

    Java代码 
    1. //代码片段   
    2. sun.misc.BASE64Encoder encorde = new  sun.misc.BASE64Encoder();    
    3. System.out.println(encorde.encode("meiyoudao" .getBytes()));  



    mail from:<meiyoudao@sohu.com>  
    250 2.1.0 Ok 

    rcpt to:<meiyoudao@sina.com>  
    250 2.1.5 Ok 

    data  
    354 End data with <CR><LF>.<CR><LF> 

    from:<xxx@sohu.com> 
    subject:haha 

    test!!! 
    .
      (这里有个一点) 
    250 2.0.0 Ok: queued as 4F8F5458C9B 



    二.登录到POP3接受邮件 
    C:\Documents and Settings\meiyoudao>telnet pop3.sohu.com 110  

    +OK POP3 ready 

    2.输入用户名(不需要base64encoder 转码) 

    user meiyoudao  
    +OK 
    3.输入密码(隐藏不告诉你们) 
    pass **********  
    +OK Authentication succeeded 

    3.获取邮件箱信息(3135 表示当前邮箱有多少封邮件,包括收件箱,发件箱等等,589337470总大小KB) 
    stat  
    +OK 3135 589337470 

    4.返回所有邮件使用的空间大小 

    list  
    ... 省略掉 
    2852 388195 
    2853 2777 
    2854 15176 
    2855 25915 
    2856 891616 
    2857 5451 
    2858 59639 
    2859 94820 
    2860 19962 
    ... 省略掉 

    5.查看特定的某封大小 
    list 3131  
    +OK 3131 41368 

    6.返回某封邮件的内容 
    retr 3  

    ...省略 

    7.把某封邮件放入垃圾箱 
    dele 3  
    +OK message 1 deleteed. 

    8.从垃圾箱中恢复邮件 
    rset  
    +OK 1 messages <3087 octets>. 

     

     

    JSP 测试邮件

    <%--
    =================================================================
    Licensed Materials - Property of IBM
    WebSphere Commerce
    (C) Copyright IBM Corp. 2009 All Rights Reserved.
    US Government Users Restricted Rights - Use, duplication or
    disclosure restricted by GSA ADP Schedule Contract with
    IBM Corp.
    =================================================================
    --%>
    <%@ page import="com.s*****.commerce.member.common.SendMailUtils" %>
    <%@ page import="javax.naming.*" %>
    <%@ page import="javax.mail.internet.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <html:html>
    <HEAD>
    <%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <META name="GENERATOR" content="IBM Software Development Platform">
    <TITLE></TITLE>
    </HEAD>
    <BODY>
    <P>
    <%
    String fromEmail="maxy@cns*****.com";
    String toEmail="yuchuan@cn.ibm.com,  zhongygz@cn.ibm.com ";
    String subject="Testing Java Mail multiple reciever 2!";
    String content="Just a test!@@@@@";
    SendMailUtils.send(fromEmail,toEmail,subject,content);
    out.print("Successful send email to :"+toEmail);
    out.print("RequestURI="+request.getRequestURI()+"<br/>");
    out.print("RequestURL="+request.getRequestURL()+"<br/>");
    %>
    </P>
    </BODY>
    </html:html>
    

     

    JAVA 测试邮件

    文件:HanQiTestJavaMail.java

     

    package com.iteye.lindows;
    
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.Address;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    /**
     * 常规JavaMail 邮件发送实用类
     * @date: 2008-8-6-下午02:43:22
     */
    public final class HanQiTestJavaMail{
        // 邮件发送者地址
        private static final String SenderEmailAddr = "dengcyd@cns*****.com";    
        // 邮件发送者邮箱用户
        private static final String SMTPUserName = "dengcyd@cns*****.com";    
        // 邮件发送者邮箱密码
        private static final String SMTPPassword = "password";    
        // 邮件发送者邮箱SMTP服务器
        private static final String SMTPServerName = "192.168.120.97";    
        private static final String SMTPServerPort = "25";    
        // 传输类型
        private static final String TransportType = "smtp";    
        // 属性
        private static Properties props;    
        private static String subject = "xxx";    
        private static String content =
            "亲爱的xxx用户,"
                + "您好!感谢您注册xxx网上商城。为方便您找回密码和接受订单通知,我们鼓励您激活账号。"
                + "您可以通过点击以下地址来直接激活账号: "
                + "https://member.******.com/webapp/wcs/stores/servlet/SNUserRegisterComfirm?langId=-7&storeId=10052&email1=adadadda&field1=457433"
                + "如果点击链接遇到问题,您也可以通过在验证邮箱页面使用“其它验证邮箱方法”输入激活码来激活账号。您在xxx注册的激活码是:457433。"
                + "预祝您在xxx上购物愉快!xxx(http://www.******.com) ";
        
        // private static String[] mailTo = { "11041813@cns*****.com","xujialai_01@163.com" };
        
        /**
         * 私有构造函数,防止外界新建本实用类的实例,因为直接使用MailUtil.sendMail发送邮件即可
         * 
         */
        private HanQiTestJavaMail(){
        }
        
        /**
         * 静态构造器
         */
        static
        {
            HanQiTestJavaMail.props = new Properties();
            
            // 存储发送邮件服务器的信息
            HanQiTestJavaMail.props.put("mail.smtp.host", SMTPServerName);
            HanQiTestJavaMail.props.put("mail.smtp.port", SMTPServerPort);
            // 同时通过验证
            HanQiTestJavaMail.props.put("mail.smtp.auth", "false");
        }
        
        /**
         * 发送邮件
         * 
         * @param emailAddr
         *            :收信人邮件地址
         * @param mailTitle
         *            :邮件标题
         * @param mailConcept
         *            :邮件内容
         */
        public static void sendMail(String emailAddr, String mailTitle, String mailConcept)
        {
            // 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
            Session s = Session.getInstance(HanQiTestJavaMail.props, null);        
            // 设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法
            // s.setDebug(true);        
            // 由邮件会话新建一个消息对象
            Message message = new MimeMessage(s);
            try
            {
                // 设置发件人
                Address from = new InternetAddress(HanQiTestJavaMail.SenderEmailAddr);
                message.setFrom(from);      
                // 设置收件人
                Address to = new InternetAddress(emailAddr);
                message.setRecipient(Message.RecipientType.TO, to);            
                // 设置主题
                message.setSubject(mailTitle);
                // 设置信件内容
                message.setText(mailConcept);
                // 设置发信时间
                message.setSentDate(new Date());
                // 存储邮件信息
                message.saveChanges();            
                Transport transport = s.getTransport(HanQiTestJavaMail.TransportType);
                // 要填入你的用户名和密码;
                transport.connect(HanQiTestJavaMail.SMTPServerName,
                    HanQiTestJavaMail.SMTPUserName,
                    HanQiTestJavaMail.SMTPPassword);            
                // 发送邮件,其中第二个参数是所有已设好的收件人地址
                transport.sendMessage(message, message.getAllRecipients());
                transport.close();            
                // System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
                // + " 内容:" + mailConcept + "成功!");
            }
            catch (Exception e)
            {
                System.out.println(e.getMessage());
                System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "失败! 原因是"
                    + e.getMessage());
            }
        }
        
        /**
         * 测试邮件发送情况
         * 
         * @param args
         */
        public static void main(String[] args)
        {
            
            for (int i = 0; i < 5; i++)
            {
                
                new Thread(new Runnable()
                {
                    public void run()
                    {
                        long start = System.currentTimeMillis();
                        
                        try
                        {
                            for (int i = 0; i < 2000; i++)
                            {
                                int len = String.valueOf(i).length();
                                String mailTo = "sntest" + "0000".substring(0, (4 - len)) + i + "@test.s*****.com";
                                System.out.println(new Date() + "  " + Thread.currentThread().getName() + "   " + mailTo);
                                HanQiTestJavaMail.sendMail(mailTo, subject, content);
                                Thread.sleep(10);
                            }
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                        long end = System.currentTimeMillis();
                        System.out.println(end - start);
                    }
                }).start();
            }
        }
        
    }
    

     


    192.186.120.97

    # 查看/统计邮件系统当前处理队列
    [root@SmartEDM3 ~]# ls -l /var/spool/postfix/active/ | wc -l

    [root@SmartEDM3 ~]# postqueue -p | wc -l

    # 查看/统计邮件系统当前处理队列 如: 以@test.s*****.com 结尾的邮箱地址
    [root@SmartEDM3 ~]# postqueue -p|grep 'test.s*****.com'|wc -l

    # 实时循环查看/统计邮件系统当前处理队列

    [root@SmartEDM3 ~]# more /usr/hanqinet/shell/test_postqueue.sh

    !#bin/bash
    while [ 1 ]
    do
    echo "`postqueue -p|grep '@test.s*****.com'|wc -l` `date`" >> /usr/hanqinet/shell/test_postqueue.log
    sleep 1
    done

    [root@SmartEDM3 ~]# tail -f /usr/hanqinet/shell/test_ postqueue .log

    0 Fri Sep 14 20:13:09 CST 2012

    # 查看/统计邮件处理总量 如 :以sntest_i***@test.s*****.com形式的邮箱
    [root@SmartEDM3 ~]# grep "sntest_i" /var/log/maillog | wc -l

    # 实时循环查看/统计邮件处理总量 如 :以*@test.s*****.com形式的邮箱

    [root@SmartEDM3 ~]# more /usr/hanqinet/shell/test_count_email.sh

    !#bin/bash
    while [ 1 ]
    do
    echo "`grep "to=<.*@test.s*****.com>" /var/log/maillog |wc -l` `date`" >> /usr/hanqinet/shell/test_count_email.log
    sleep 1
    done

     

     

    # 邮件cronjob, 邮箱地址 切割分类统计自动化job

    [root@SmartEDM3 ~]# crontab -l
    00 00 * * * /nmon/nmon_x86_rhel45  -f -N -m /nmon  -s 60 -c 1440
    ########## TIME update ##############

    30 * * * * /usr/sbin/ntpdate 192.168.118.201

    59 */1 * * * /usr/hanqinet/shell/cutting.sh

    [root@SmartEDM3 ~]# more /usr/hanqinet/shell/cutting.sh

     

    #!/bin/bash
    
    #----------------------------------
    #create by redstone
    #2012-09-07
    #---------------------------------
    
    mydate_date=`date |awk '{print $2,$3}'`
    mydate_hour=`date |awk '{print $4}'|awk -F ':' '{print $1}'`
    mydate_log="$mydate_date $mydate_hour"
    #mydate_log="Aug  5 07"
    
    mydate=`date +%Y%m%d`
    logfile="/var/log/maillog.4"
    pub_path="/usr/hanqinet/data"
    mydate_path=$pub_path/$mydate
    script_path=${0%/*}
    cutting_date=`date '+%F %H'`
    
    if [ -d $mydate_path ];then
    	echo ok > /dev/null
    else
    	mkdir $mydate_path
    fi
    
    while read u
    do
    domain=($u)
    mail_num=`grep "$mydate_log" $logfile |grep -icE 'to=<\w+([\.-]?\w+)*@'${domain[1]}'>'`
    send_num=`grep "$mydate_log" $logfile |grep -iE 'to=<\w+([\.-]?\w+)*@'${domain[1]}'>'|grep -icE '['${domain[2]}']'`
    reject_num=`grep "$mydate_log" $logfile |grep -iE 'to=<\w+([\.-]?\w+)*@'${domain[1]}'>'|grep -icE '['${domain[3]}']'`
    no_send_num=`grep "$mydate_log" $logfile |grep -iE 'to=<\w+([\.-]?\w+)*@'${domain[1]}'>'|grep -vicE '['${domain[2]}']'`
    
    grep "$mydate_log" $logfile |grep -iE 'to=<\w+([\.-]?\w+)*@'${domain[1]}'>'|grep -viE '['${domain[2]}']' >> $mydate_path/no_send_${domain[0]}
    
    no_send_percent=`echo "$no_send_num $mail_num"|awk '{printf("%0.2f\n",$1/$2)}'`
    
    ...skipping one line
    
    reject_percent=`awk 'BEGIN{printf "%.2f%\n",('$reject_num'/'$mail_num')*100}'`
    send_percent=`awk 'BEGIN{printf "%.2f%\n",('$send_num'/'$mail_num')*100}'`
    
    echo "$cutting_date" "$mail_num" "$send_num/$send_percent" "$reject_num/$reject_percent">> $mydate_path/${domain[0]}
    
    test `expr $reject_percent_1 \> 0.1` -eq 1 && $script_path/mail_alert.exp
    
     $RANDOM "${domain[0]} reject" "reject $reject_percent_1"
    test `expr $no_send_percent \> 0.3` -eq 1 && $script_path/mail_alert.exp
    
     $RANDOM "${domain[0]} no  send ok" "no send ok $no_send_percent"
    
    done < $script_path/cutting.conf
    
    

     

    # 邮件cronjob, 邮箱地址 切割分类统计自动化job,配置文件
    [root@SmartEDM3 ~]# cat /usr/hanqinet/shell/cutting.conf

    126 126.com|netease.com|188.com|yeah.net 250?Mail?OK 451?MI:SFQ|451?RP:QRC|reject
    163 163.com|vip.163.com 250?Mail?OK 451?MI:SFQ|451?RP:QRC|reject
    21cn 21cn.com 250?Ok: reject
    google gmail.com|g.cn 250?2.0.0?OK reject
    microsoft live.cn|hotmail.com|msn.com 250?< reject
    qq qq.com|vip.qq.com 250?Ok: Mail?content?denied|reject
    sina sina.com|vip.sina.com|sina.com.cn|sina.cn 250?ok: reject
    sohu sohu.com|vip.sohu.com|vip.sohu.net|sogou.com|chinaren.com 250?2.0.0?Ok 553?5.7.0|553?5.7.1|553?5.7.2|553?5.7.3|reject
    tom tom.com|163.net 250?OK reject
    yahoo yahoo.com.cn|yahoo.cn|yahoo.com 250?ok 421?4.7.0|420?Resources|reject
    s***** mail.s*****.com|cns*****.com 250 reject
    test test.s*****.com 250 reject

    # 邮件cronjob, 邮箱地址 切割分类统计自动化job性能报警  

    [root@SmartEDM3 shell]# grep 'mail_alert.exp' /usr/hanqinet/shell/cutting.sh

    test `expr $reject_percent_1 \> 0.1` -eq 1 && $script_path/mail_alert.exp
     $RANDOM "${domain[0]} reject" "reject $reject_percent_1"
    test `expr $no_send_percent \> 0.3` -eq 1 && $script_path/mail_alert.exp
     $RANDOM "${domain[0]} no  send ok" "no send ok $no_send_percent"

     

    [root@SmartEDM3 shell]# cat /usr/hanqinet/shell/mail_alert.exp

    #!/usr/bin/expect
    
    set messageid [lindex $argv 0]
    set subject [lindex $argv 1]
    set content [lindex $argv 2]
    
    set helo "ehlo ********.com.com"
    set timeout 30
    set myhost 218.240.13.82
    set myport 25
    set rcptto "fengyan@********.com"
    #set rcptto1 "qiuminrui@********.com"
    #set rcptto2 "houqiguo@********.com"
    set mailfrom "edm-support@********.com"
    set username "ZWRtLXN1cHBvcnRAaGFucWluZXQuY29t"
    set password "KGhhbnFpQGVkbSk="
    set mydate [ exec date ]
    	spawn telnet $myhost $myport
    	expect "220" # {exec echo "ok";exit 1}
    	send "$helo\n"
    	expect "250"
    	send "auth login\n"
    	expect "334"
    	send "$username\n"
    	expect "334"
    	send "$password\n"
    	expect "235"
    	send "mail from:$mailfrom\n"
    	expect "250"
    	send "rcpt to:$rcptto\n"
    #	expect "250"
    #	send "rcpt to:<$rcptto1>\n"
    #	expect "250"
    #	send "rcpt to:<$rcptto2>\n"
    	expect "250"
    	send "data\n"
    	expect "354"
    	send "From: $mailfrom\n"
    	expect ""
    	send "Subject: $subject\n"
    	expect ""
    	send "To: $rcptto\n"
    	expect ""
    	send "Date: $mydate\n"
    	expect ""
    	send "MIME-Version: 1.0\n"
    	expect ""
    	send "Content-Type: text/plain; charset=\"gb2312\"\n"
    	expect ""
    	send "Content-Transfer-Encoding: 8bit\n"
    	expect ""
    	send "Message-ID: <$messageid@***.com>\n"
    	expect ""
    	send "\n"
    	expect ""
    	send "$content\n"
    	expect ""
    	send "Date:$mydate.\n"
    	expect ""
    	send ".\n"
    	expect "250"
    	send "quit\n"
    	expect "221"
    	close
    	wait
    exit
    

     

     

    [root@SmartEDM3 hanqinet]# pwd

    /usr/hanqinet

    [root@SmartEDM3 hanqinet]# tree > tree.txt

    .
    |-- data
    |   |-- 20120914
    |   |   |-- 126
    |   |   |-- 163
    |   |   |-- 21cn
    |   |   |-- google
    |   |   |-- microsoft
    |   |   |-- no_send_126
    |   |   |-- no_send_163
    |   |   |-- no_send_21cn
    |   |   |-- no_send_google
    |   |   |-- no_send_microsoft
    |   |   |-- no_send_qq
    |   |   |-- no_send_sina
    |   |   |-- no_send_sohu
    |   |   |-- no_send_s*****
    |   |   |-- no_send_test
    |   |   |-- no_send_tom
    |   |   |-- no_send_yahoo
    |   |   |-- qq
    |   |   |-- sina
    |   |   |-- sohu
    |   |   |-- s*****
    |   |   |-- test
    |   |   |-- tom
    |   |   `-- yahoo
    |   `-- index.html
    |-- maillog
    |-- main.cf
    |-- shell
    |   |-- cutting.conf
    |   |-- cutting.sh
    |   |-- mail_alert.exp
    |   |-- nmon_x86_64_centos5
    |   |-- nohup.out
    |   |-- test.1.log
    |   |-- test.2.log
    |   |-- test.2.sh
    |   |-- test.log
    |   `-- test.sh
    `-- tree.txt
    

     

     

     

    LoadRunner mailServer  SmartEDM_MailServer

    10user / mail queue=230 / mail_transaction per second=11.3 / mail_thinktime=0s / mail_response time=0.7s

    30user / mail queue=160 / mail_transaction per second=7 / mail_thinktime=3s / mail_response time=0.7s

    60user / mail queue=270 / mail_transaction per second=13.4 / mail_thinktime=3s / mail_response time=1.0s

     

    mail = 7x3600=25200封

    mail = 11.3x3600=40680封

    mail = 13.4x3600=48240封

    Thinkmail云邮件系统

    http://www.thinkcloud.cn

    http://baike.baidu.com/view/10516229.htm 

    Thinkmail云邮件系统是中国唯一一家电信级安全标准的邮件系统产品,从诞生之日起,就站在邮件技术的最高点,携带着“智慧”的基因,高标准构建的新一代智慧企业云邮件系统,Thinkmail一直秉持创新理念,不断的融合移动互联网、云计算等新技术在邮件系统领域中的应用,获得了8项发明专利,凭借移动化、套件化、能力开放及服务计量等等核心技术,服务于全国4.5亿终端用户,3000多家企业,持续引领全球邮箱领域的发展方向。

     

    end

  • 相关阅读:
    5.3二叉树的运算
    hadoop namenode切换
    org.apache.hadoop.security.AccessControlException
    Hive中的日志
    命令大全详解
    python深浅copy
    awk命令
    head&tail命令
    cut命令
    理解inode
  • 原文地址:https://www.cnblogs.com/lindows/p/14390507.html
Copyright © 2020-2023  润新知