From: Martin Wilck Date: Wed, 7 May 2025 15:49:05 +0000 (+0200) Subject: mdmonitor: use MAILFROM to set sendmail envelope sender address X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;p=thirdparty%2Fmdadm.git mdmonitor: use MAILFROM to set sendmail envelope sender address Modern mail relays may reject emails with unknown envelope sender address. Use the MAILFROM address also as envelope sender address to work around this issue. Signed-off-by: Martin Wilck --- diff --git a/mdmonitor.c b/mdmonitor.c index d51617cd..ea35d98e 100644 --- a/mdmonitor.c +++ b/mdmonitor.c @@ -639,11 +639,20 @@ static void execute_alert_cmd(const struct event_data *data) */ static void send_event_email(const struct event_data *data) { - FILE *mp, *mdstat; + FILE *mp = NULL, *mdstat; char buf[BUFSIZ]; int n; - mp = popen(Sendmail, "w"); + if (info.mailfrom) { + char cmd[1024]; + int rc = snprintf(cmd, sizeof(cmd), "%s -f%s", + Sendmail, info.mailfrom); + + if (rc >= 0 && (unsigned int)rc < sizeof(cmd)) + mp = popen(cmd, "w"); + } + if (mp == NULL) + mp = popen(Sendmail, "w"); if (!mp) { pr_err("Cannot open pipe stream for sendmail.\n"); return;