• (原)邮件告警发送服务基础环境搭建笔记


     

    环境:ubuntu20.04 容器

    邮件发送使用s-nail

    配置文件为/etc/s-nail.rc

    环境搭建步骤:

    1. 安装s-nail邮件服务

      sudo apt install s-nail
    2. 打开163邮箱,进入设置,开启IMAP/stmp,POP3/stmp服务,并获取邮箱的授权码:xxxx

    3. 因为需要 163邮箱的 SSL 证书,所以我们还需要手动的获取163邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:


      apt install -y certutil
      apt-get install libnss3-tools

      mkdir -p /root/.certs/
      echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt
      certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
      certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
      certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i ~/.certs/163.crt
      certutil -L -d /root/.certs

      为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录 /root/.certs 里执行如下命令:


      cd /root/.certs/
      certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
    4. 编写s-nail.rc配置文件:

      使用vi /etc/s-nail.rc
      配置文件内容:
      # This is the configuration file for Heirloom mailx (formerly
      # known under the name "nail".
      # See mailx(1) for further options.
      # This file is not overwritten when 'make install' is run in
      # the mailx build process again.

      # Sccsid @(#)nail.rc   2.11 (gritter) 8/2/08

      # Do not forward to mbox by default since this is likely to be
      # irritating for most users today.
      set hold

      # Append rather than prepend when writing to mbox automatically.
      # This has no effect unless 'hold' is unset again.
      set append

      # Ask for a message subject.
      set ask

      # Assume a CRT-like terminal and invoke a pager.
      set crt

      # Messages may be terminated by a dot.
      set dot

      # Do not remove empty mail folders in the spool directory.
      # This may be relevant for privacy since other users could
      # otherwise create them with different permissions.
      set keep

      # Do not remove empty private mail folders.
      set emptybox

      # Quote the original message in replies by "> " as usual on the Internet.
      set indentprefix="> "

      # Automatically quote the text of the message that is responded to.
      set quote

      # Outgoing messages are sent in ISO-8859-1 if all their characters are
      # representable in it, otherwise in UTF-8.
      set sendcharsets=iso-8859-1,utf-8

      # Display sender's real names in header summaries.
      set showname

      # Display the recipients of messages sent by the user himself in
      # header summaries.
      set showto

      # Automatically check for new messages at each prompt, but avoid polling
      # of IMAP servers or maildir folders.
      set newmail=nopoll

      # If threaded mode is activated, automatically collapse thread.
      set autocollapse

      # Mark messages that have been answered.
      set markanswered

      # Hide some header fields which are uninteresting for most human readers.
      ignore received in-reply-to message-id references
      ignore mime-version content-transfer-encoding

      # Only include selected header fields when forwarding messages.
      #fwdretain subject date from to

      # For Linux and BSD, this should be set.
      set bsdcompat

      set nss-config-dir=/root/.certs/  
      set from=lihaiping1603@163.com
      set smtp=smtps://smtp.163.com
      set ssl-verify=ignore
      set smtp-auth=login
      set smtp-auth-user=lihaiping1603@163.com
      set smtp-auth-password=xxx

      配置文件的具体内容如上述。其中对几个主要参数做进一步的介绍:

      from:对方收到邮件时显示的发件人
      smtp:指定第三方发邮件的smtp服务器地址 
      set smtp-auth-user:第三方发邮件的用户名 
      set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码 
      smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式 
      nss-config-dir:对应的ssl证书生成目录,我们可以通过find / -name "cert*.db"方式查找到相应的目录。
    5. 测试


      root@e2579822f3cc:/home/lhp/xx# echo "body" | s-nail -v -s "test" xxxx@qq.com
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: No such file to load: /root/.mailrc
      s-nail: Warning -- v15-compat=yes will be default in v14.10.0!
      s-nail: P(seudo)R(andom)N(umber)G(enerator): *TLS RAND_*
      s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
      s-nail:   Please read the manual section "On URL syntax and credential lookup"
      s-nail: Obsoletion warning: please don't use *smtp*: assign a smtp:// URL to *mta*!
      s-nail: Resolving host smtp.163.com:smtps ... done
      s-nail: Connecting to 220.181.12.18:smtps ... connected.
      s-nail: TLS connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
      root@e2579822f3cc:/home/lhp/xx#
      root@e2579822f3cc:/home/lhp# cat /tmp/tmp_mail.txt | s-nail -v -Sttycharset=utf8 -s "pipe" lihaiping1@chinatelecom.cn
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Field already ignored: received
      s-nail: Field already ignored: in-reply-to
      s-nail: Field already ignored: message-id
      s-nail: Field already ignored: references
      s-nail: Field already ignored: mime-version
      s-nail: Field already ignored: content-transfer-encoding
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Warning -- v15-compat=yes will be default in v14.10.0!
      s-nail: P(seudo)R(andom)N(umber)G(enerator): *TLS RAND_*
      s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
      s-nail:   Please read the manual section "On URL syntax and credential lookup"
      s-nail: Obsoletion warning: please don't use *smtp*: assign a smtp:// URL to *mta*!
      s-nail: Resolving host smtp.163.com:smtps ... done
      s-nail: Connecting to 220.181.12.14:smtps ... connected.
      s-nail: TLS connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
      root@e2579822f3cc:/home/lhp#
      root@e2579822f3cc:/home/lhp# s-nail -v -Sttycharset=utf8 -s "a" -a /tmp/tmp_mail.txt lihaiping1@chinatelecom.cn < /tmp/tmp_mail.txt
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Field already ignored: received
      s-nail: Field already ignored: in-reply-to
      s-nail: Field already ignored: message-id
      s-nail: Field already ignored: references
      s-nail: Field already ignored: mime-version
      s-nail: Field already ignored: content-transfer-encoding
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Warning -- v15-compat=yes will be default in v14.10.0!
      s-nail: P(seudo)R(andom)N(umber)G(enerator): *TLS RAND_*
      s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
      s-nail:   Please read the manual section "On URL syntax and credential lookup"
      s-nail: Obsoletion warning: please don't use *smtp*: assign a smtp:// URL to *mta*!
      s-nail: Resolving host smtp.163.com:smtps ... done
      s-nail: Connecting to 220.181.12.18:smtps ... connected.
      s-nail: TLS connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
      root@e2579822f3cc:/home/lhp#
      root@e2579822f3cc:/home/lhp# s-nail -v -Sttycharset=utf8 -s "this is test" lihaiping1@chinatelecom.cn < /tmp/tmp_mail.txt
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Field already ignored: received
      s-nail: Field already ignored: in-reply-to
      s-nail: Field already ignored: message-id
      s-nail: Field already ignored: references
      s-nail: Field already ignored: mime-version
      s-nail: Field already ignored: content-transfer-encoding
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp
      s-nail: Obsoletion warning: variable superseded or obsoleted: ssl-verify
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-user
      s-nail: Obsoletion warning: variable superseded or obsoleted: smtp-auth-password
      s-nail: Warning -- v15-compat=yes will be default in v14.10.0!
      s-nail: P(seudo)R(andom)N(umber)G(enerator): *TLS RAND_*
      s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
      s-nail:   Please read the manual section "On URL syntax and credential lookup"
      s-nail: Obsoletion warning: please don't use *smtp*: assign a smtp:// URL to *mta*!
      s-nail: Resolving host smtp.163.com:smtps ... done
      s-nail: Connecting to 220.181.12.16:smtps ... connected.
      s-nail: TLS connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
      root@e2579822f3cc:/home/lhp#
      root@e2579822f3cc:/home/lhp# s-nail -h
      s-nail (s-nail v14.9.15): send and receive Internet mail

      Send-only mode: send mail "to-addr"(ess) receiver(s):
      s-nail [-DdEFinv~#] [-: spec] [-A account] [:-C "field: body":]
              [:-a attachment:] [:-b bcc-addr:] [:-c cc-addr:]
              [-M type | -m file | -q file | -t] [-r from-addr] [:-S var[=value]:]
              [-s subject] [-T "arget: addr"] [:-X/Y cmd:] [-.] :to-addr:

      "Receive" mode, starting on [-u user], primary *inbox* or [$MAIL]:
      s-nail [-DdEeHiNnRv~#] [-: spec] [-A account] [:-C "field: body":]
              [-L spec] [-r from-addr] [:-S var[=value]:] [-u user] [:-X/Y cmd:]

      "Receive" mode, starting on -f (secondary $MBOX or [file]):
      s-nail [-DdEeHiNnRv~#] [-: spec] [-A account] [:-C "field: body":] -f
              [-L spec] [-r from-addr] [:-S var[=value]:] [:-X/Y cmd:] [file]

      -d sandbox, -:/ no .rc files, -. end options and force send-mode
      -a attachment[=input-charset[#output-charset]]
      -[bcrT], to-addr: ex@am.ple or '(Lovely) Ex <am@p.le>'
      -[Mmqt]: special input data (-t: template message on stdin)
      -e only mail check, -H header summary; both: message specification via -L
      -S (un)sets variable, -X/-Y execute commands pre/post startup, -#: batch mode
      Features via "$ s-nail -Xversion -Xx"; there is --long-help
      Bugs/Contact via "$ s-nail -Sexpandaddr=shquote '\$contact-mail'"

      这里对s-nail的常用命令参数进行简单的介绍,详细的可以参考:http://manpages.ubuntu.com/manpages/bionic/man1/s-nail.1.html

      -a file,可以为邮件添加附件文件file

      -M xxxx, 为mime指定type

      -m file, 这个没太搞懂和-q的区别,难道是这种会为文件的内容做拓展?然后文件的内容也会作为邮件的消息内容

      -q file,将文件的内容指定为邮件的消息体

      -S var=value,设置内部可变变量的值

      -s subject,设置邮件的标题

      -v 打印消息

  • 相关阅读:
    Salt-ssh批量自动安装被控端salt-mini
    Saltstack配置管理
    gitlab的安装和基本维护
    Git的杀手级功能之 一 远程仓库
    分布式版本控制系统-git
    Linux查看服务器公网ip的方法
    vmware fusion 10序列号
    python3.6.4的importlib模块重载用法
    设置PyCharm中的Python代码模版
    MacOs执行SQL出错(mysql)
  • 原文地址:https://www.cnblogs.com/lihaiping/p/15817729.html
Copyright © 2020-2023  润新知