程序员de日常 2019-03-29 18:08 采纳率: 0%
浏览 754
已结题

linux搭建SMTP邮件服务器,部分邮件内容乱码

我在linux上搭建了一个SMTP邮件服务器,主要是ELK用来发送预警邮件;

邮件内容都是一些JAVA异常的堆栈信息;

然后有部分邮件内容会出现乱码,看着好像是编码之后没有解码的内容。

如图:

图片说明

不知道是什么原因造成的,我之前用的是163邮件服务器发送的,然后接收邮件的是QQ邮箱;开始以为是两个邮箱不一样导致的,后面把163邮件服务器改成了QQ邮件服务;但是问题依然存在......

以下是我搭建SMTP邮件服务器的步骤:

图片说明

图片说明

图片说明

以下是ELK发送预警邮件的配置:

{
  "actions": {
    "email_html_alarm_7d6323ca-2835-4ffe-a78b-65acb93c2f55": {
      "name": "email html alarm",
      "throttle_period": "1m",
      "email_html": {
        "to": "to@qq.com",
        "from": "from@163.com",
        "stateless": false,
        "subject": "xxx异常预警检测到[开发环境]xxx日志中有{{payload.hits.total}}个异常信息",
        "priority": "high",
        "html": "<p>Hi {{watcher.username}},</p><br/><p>xxx异常预警发现{{payload.hits.total}}个异常信息,<a href=\"http://192.168.2.16:5601/app/kibana\" target=\"_blank\">点击</a>查看详情。</p><p>异常信息如下:</p>{{#payload.hits.hits}}<p>MessageInfo:<i style=\"color: grey\">{{_source.message}}</i><br/>Hosts:<i style=\"color: grey\">{{_source.fields.logsource}}</i><br/>SourceFile:<i style=\"color: grey\">{{_source.source}}</i><br/>LogType:<i style=\"color: grey\">{{_source.fields.logtype}}</i><br/>Time:<i style=\"color: grey\">{{_source.@timestamp}}</i></p>{{/payload.hits.hits}}<br/><div style=\"color: grey\"><br/><hr><br/><p>此监视程序根据以下标准发送警报:</p><br/><ul><li>{{watcher.condition.script.script}}</li></ul><br/></div>"
      }
    }
  },
  "input": {
    "search": {
      "request": {
        "index": [
          "filebeat-*"
        ],
        "body": {
          "query": {
            "bool": {
              "must": [
                {
                  "term": {
                    "fields.logtype": "xxx"
                  }
                },
                {
                  "term": {
                    "tags": "exception"
                  }
                },
                {
                  "range": {
                    "@timestamp": {
                      "gte": "now-1h",
                      "lte": "now",
                      "format": "epoch_millis"
                    }
                  }
                }
              ],
              "must_not": [],
              "should": []
            }
          },
          "sort": [
            {
              "@timestamp": {
                "order": "desc"
              }
            }
          ]
        }
      }
    }
  },
  "condition": {
    "script": {
      "script": "payload.hits.total >= 1"
    }
  },
  "trigger": {
    "schedule": {
      "later": "every 1 hours"
    }
  },
  "disable": false,
  "report": false,
  "title": "xxx异常预警",
  "save_payload": false,
  "spy": false,
  "impersonate": false,
  "username": "xxx"
}

求高手指点!!!

  • 写回答

2条回答

  • devmiao 2019-03-31 11:19
    关注

    1 mailx安装及配置
    1.1 安装
    运行如下命令:

    [root@congying ~]#yum install mailx
    1
    1.2 编辑配置文件
    运行如下命令:

    [root@congying ~]# vim /etc/mail.rc
    1
    编辑 mail.rc 文件,内容如下:

    对方收到邮件时显示的发件人

    set from=xxxx@163.com

    指定第三方发邮件的smtp服务器地址

    set smtp=smtp.163.com

    第三方发邮件的用户名

    set smtp-auth-user=xx@163.com

    用户名对应的密码,有些邮箱填的是授权码

    set smtp-auth-password=xxx

    SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

    set smtp-auth=login
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    2 发送邮件
    2.1 无正文邮件
    [root@congying ~]# mail -s "[主题]" [收件地址]
    1
    示例:

    [root@congying ~]# mail -s "Test_Subject" cymobius@163.com
    1
    2.2 有正文邮件
    使用现有文件(如html、txt等)作为正文文件
    命令如下:
    ####
    [root@congying ~]# mail -s "[主题]" [收件地址]< [文件路径(邮件正文.txt)]
    ####
    1
    2
    3
    或者:

    ####
    [root@congying ~]# cat [文件路径(邮件正文.txt)] | mail -s "[主题]" [收件地址]
    ###
    1
    2
    3
    无正文文件:
    命令如下:
    ####
    [root@congying ~]# echo "[正文内容]" | mail -s "[主题]" [收件地址]
    ####
    1
    2
    3

    3 邮件中文乱码问题解决
    对于中文乱码问题一般是环境变量所致,但是在设置好了环境变量,使用测试脚本可以发出邮件,但是使用crontab 例行的时候就会出现乱码问题,这时候也可以在脚本中添加环境变量即可,这种方式适用于大部分的中文乱码问题:
    即在脚本头部行添加如下环境变量:
    
    export LANG="zh_CN.UTF-8"
    export LC_ALL="zh_CN.UTF-8"
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试