File 1008-mdmonitor-use-MAILFROM-to-set-sendmail-envelope-send.patch of Package mdadm

From 730586b291b9aecdbf03704ac2cb4e38082f2ce9 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Wed, 7 May 2025 17:49:05 +0200
Subject: [PATCH] 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 <mwilck@suse.com>
---
 mdmonitor.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/mdmonitor.c b/mdmonitor.c
index d51617c..ea35d98 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;
-- 
2.49.0

openSUSE Build Service is sponsored by