From a0da9fc2b9df89bb6199f4a3bdb31c7380c9ee87 Mon Sep 17 00:00:00 2001 From: Alexis Mousset Date: Wed, 11 Nov 2020 16:49:51 +0100 Subject: [PATCH] fix(transport-sendmail): Only pass -f option to sendmail when needed --- src/transport/sendmail/mod.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/transport/sendmail/mod.rs b/src/transport/sendmail/mod.rs index c0a24ef..c905175 100644 --- a/src/transport/sendmail/mod.rs +++ b/src/transport/sendmail/mod.rs @@ -117,10 +117,11 @@ impl SendmailTransport { fn command(&self, envelope: &Envelope) -> Command { let mut c = Command::new(&self.command); - c.arg("-i") - .arg("-f") - .arg(envelope.from().map(|f| f.as_ref()).unwrap_or("\"\"")) - .arg("--") + c.arg("-i"); + if let Some(from) = envelope.from() { + c.arg("-f").arg(from); + } + c.arg("--") .args(envelope.to()) .stdin(Stdio::piped()) .stdout(Stdio::piped()); @@ -133,10 +134,11 @@ impl SendmailTransport { let mut c = Command::new(&self.command); c.kill_on_drop(true); - c.arg("-i") - .arg("-f") - .arg(envelope.from().map(|f| f.as_ref()).unwrap_or("\"\"")) - .arg("--") + c.arg("-i"); + if let Some(from) = envelope.from() { + c.arg("-f").arg(from); + } + c.arg("--") .args(envelope.to()) .stdin(Stdio::piped()) .stdout(Stdio::piped()); @@ -149,10 +151,11 @@ impl SendmailTransport { let mut c = Command::new(&self.command); c.kill_on_drop(true); - c.arg("-i") - .arg("-f") - .arg(envelope.from().map(|f| f.as_ref()).unwrap_or("\"\"")) - .arg("--") + c.arg("-i"); + if let Some(from) = envelope.from() { + c.arg("-f").arg(from); + } + c.arg("--") .args(envelope.to()) .stdin(Stdio::piped()) .stdout(Stdio::piped());