在 monit 中指定邮件服务器主机名和 tlsv1

chm*_*mac 3 email-server monit

[编辑:我回答了我问题的前半部分,所以我将编辑这个以解决后半部分。]

/etc/monit/monitrc 看起来像这样:

set mailserver
    smtp.server.net
    port 587
    username "USERNAME"
    password "PASSWORD"
    using tlsv1 with timeout 30 seconds
    using hostname "server.fqdn.com",

    smtp.server2.net
    port 587
    username "USERNAME"
    password "PASSWORD"
    using tlsv1 with timeout 30 seconds
    using hostname "server.fqdn.com"
Run Code Online (Sandbox Code Playgroud)

sudo service monit syntax 吐出这个:

/etc/monit/monitrc:57: Error: syntax error 'smtp.server2.com'
Run Code Online (Sandbox Code Playgroud)

起初我有错误的使用/使用这样的语法:

    using tlsv1
    using hostname "server.fqdn.com"
    with timeout 30 seconds
Run Code Online (Sandbox Code Playgroud)

chm*_*mac 5

典型的,在发布后,我立即找到了答案。

with timeout 30 seconds部分属于using tlsv1,因此语法如下所示:

结果正确的配置是这样的:

set mailserver
    smtp.server.net
    port 587
    username "USERNAME"
    password "PASSWORD"
    using tlsv1
    ,
    smtp.gmail.com
    port 587
    username "USERNAME"
    password "PASSWORD"
    using tlsv1

    with timeout 30 seconds
    using hostname "server.fqdn.com"
Run Code Online (Sandbox Code Playgroud)

with timeoutusing hostname声明来所有服务器已经上市之后,它们适用于列表中的所有邮件服务器。我花了很长时间才最终弄明白,但如果你仔细看,它就在手册中。白色间距是可选的。