【问题标题】:how to give a specific name to an email address in postfix.?如何在后缀中为电子邮件地址指定特定名称。?
【发布时间】:2017-03-24 06:04:07
【问题描述】:

我在我的系统上安装了 Nagios 核心,如果某些服务进入关键/警告阶段,它会向我发送一封电子邮件。一切正常。 我已配置后修复以发送电子邮件并在“sasl_passwd”文件中配置了一个电子邮件地址,类似于“[smtp.gmail.com]:587 <email-id>:<password>”。 当我收到有关服务阶段的邮件时,它以“来自<email-id> 的警报”的形式出现. 我该怎么做?

【问题讨论】:

    标签: open-source monitoring nagios postfix


    【解决方案1】:

    更改您的命令notify-host-by-emailnotify-service-by-email。这些命令是发送电子邮件通知的内容。默认情况下,它将消息字符串通过管道传递给/bin/mail。它已经包含指示主题的-s 标志。所以为了覆盖发件人,我们检查man mail并确定标志是-r [from-addr]。因此,您可以从以下位置更改命令:

    # 'notify-host-by-email' command definition
    define command{
        command_name    notify-host-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }
    
    # 'notify-service-by-email' command definition
    define command{
        command_name    notify-service-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
        }
    

    收件人:

    # 'notify-host-by-email' command definition
    define command{
        command_name    notify-host-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -r "someemail@somewhere.com" -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }
    
    # 'notify-service-by-email' command definition
    define command{
        command_name    notify-service-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -r "someemail@somewhere.com" -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
        }
    

    someemail@somewhere.com 是您的电子邮件地址。

    希望这会有所帮助。

    【讨论】:

    • 如果我只想要“Nagios”这个名字怎么办?
    • 然后将其指定为-r 标志:-r "Nagios Alerts <nagios@yourdomain.com>"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多