# Can git send-email support neomutt?

5 messages from 2022-11-05 to 2022-11-06. Participants: Wu Zhenyu, brian m. carlson.
Thread: https://gitlist.dev/t/58749

## Wu Zhenyu, 2022-11-05 15:46

Subject: Can git send-email support neomutt?
Message-ID: <20221105154600.hbrqs74inmvpebie@desktop>
URL: https://gitlist.dev/e/20221105154600.hbrqs74inmvpebie%40desktop

```
Excuse me.

I want to use neomutt as git send-email's cmd:

ˋˋˋ
[sendemail]
	sendmailCmd = neomutt
ˋˋˋ

However, I notice

ˋˋˋ
my @sendmail_parameters = ('-i', @recipients);
...
exec ("sh", "-c", "$sendmail_cmd \"\$@\"", "-", @sendmail_parameters)
ˋˋˋ

It call `neomutt -i to@email from@email`, which is an incorrect cmd for neomutt.

Can we customize sendmail-cmd more flexible? Like

ˋˋˋ
[sendemail]
	sendmailCmd = neomutt %{to}
ˋˋˋ

call `neomutt to@email.com`.

Thanks!

-- 
Best Regards
Wu Zhenyu

```

## brian m. carlson, 2022-11-05 18:10

Subject: Re: Can git send-email support neomutt?
Message-ID: <Y2anAijZxu9QEX4M@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/Y2anAijZxu9QEX4M%40tapette.crustytoothpaste.net
In-Reply-To: <20221105154600.hbrqs74inmvpebie@desktop>

```
On 2022-11-05 at 15:46:00, Wu Zhenyu wrote:
> Excuse me.
> 
> I want to use neomutt as git send-email's cmd:
> 
> ˋˋˋ
> [sendemail]
> 	sendmailCmd = neomutt
> ˋˋˋ

Mutt and Neomutt are MUAs, which stands for mail user agent.  That is,
they're mail clients that people use to read, compose, and send email.
The sendmailCmd wants an MTA, or mail transfer agent, which is
essentially a mail server.  It's customary for most Unix systems to have
such a piece of software which emulates the original Sendmail in its
command-line interface, even if that's to send data off the system.

That's why you see a fixed interface here, because whether someone is
using Sendmail, Exim, Postfix, or a smarthost-only tool like esmtp-run,
whatever software is being used presents the same interface.

It's not likely that we'd add a lot of customizability to this option.
However, you can use the same SMTP server that you use with Neomutt by
setting the smtpuser, smtpencryption, smtpserver, and smtpserverport
options.

You can also use `git format-patch --stdout | neomutt -f -` and that may
provide you the same functionality you were hoping for with
`sendemail.sendmailCmd`.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

```

## Wu Zhenyu, 2022-11-06 09:02

Subject: Re: Can git send-email support neomutt?
Message-ID: <20221106090233.ukf6rjzrygpnavzh@desktop>
URL: https://gitlist.dev/e/20221106090233.ukf6rjzrygpnavzh%40desktop
In-Reply-To: <Y2anAijZxu9QEX4M@tapette.crustytoothpaste.net>

```
Thanks for your quick reply.

> You can also use `git format-patch --stdout | neomutt -f -` and that may
> provide you the same functionality you were hoping for with
> `sendemail.sendmailCmd`.

It cannot use `git send-email -1` I like.

> Mutt and Neomutt are MUAs, which stands for mail user agent.  That is,
> they're mail clients that people use to read, compose, and send email.

People can use MUA to send email, the only problem is `-i`. I consider the following method

ˋˋˋ
[sendemail]
	suppresscc = author
	sendmailCmd = git-neomutt
ˋˋˋ

`~/.local/bin/neomutt`

ˋˋˋ
#!/usr/bin/env bash
neomutt "${@//-i/}"
ˋˋˋ

And it can work:

ˋˋˋ
❯ git send-email -1
/tmp/5441yKUviQ/0001-TEST.patch
The following files are 8bit, but do not declare a Content-Transfer-Encoding.
    /tmp/5441yKUviQ/0001-TEST.patch
Which 8bit encoding should I declare [UTF-8]?
To whom should the emails be sent (if anyone)? my-another@email
Message-ID to be used as In-Reply-To for the first email (if any)?
Logging in...
Warning: Fcc to an IMAP mailbox is not supported in batch mode
Skipping Fcc to imaps://imaphz.qiye.163.com/Sent
OK. Log says:
Sendmail: git-neomutt -i my-another@email
From: Wu Zhenyu <wuzhenyu@ustc.edu>
To: my-another@email
Subject: [PATCH] TEST
Date: Sun,  6 Nov 2022 16:39:49 +0800
Message-Id: <20221106083949.210946-1-wuzhenyu@ustc.edu>
X-Mailer: git-send-email 2.38.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Result: OK
ˋˋˋ

I want to know can we remove `-i` to allow more MUA/MTA? If user want to add something, why not let them

ˋˋˋ
[sendemail]
	sendmailCmd = msmtp -i
ˋˋˋ

I think it should be easy to realize.

And I'll consider share this tip to neomutt.

Thanks!

On Sat, Nov 05, 2022 at 06:10:10PM +0000, brian m. carlson wrote:
> On 2022-11-05 at 15:46:00, Wu Zhenyu wrote:
> > Excuse me.
> > 
> > I want to use neomutt as git send-email's cmd:
> > 
> > ˋˋˋ
> > [sendemail]
> > 	sendmailCmd = neomutt
> > ˋˋˋ
> 
> Mutt and Neomutt are MUAs, which stands for mail user agent.  That is,
> they're mail clients that people use to read, compose, and send email.
> The sendmailCmd wants an MTA, or mail transfer agent, which is
> essentially a mail server.  It's customary for most Unix systems to have
> such a piece of software which emulates the original Sendmail in its
> command-line interface, even if that's to send data off the system.
> 
> That's why you see a fixed interface here, because whether someone is
> using Sendmail, Exim, Postfix, or a smarthost-only tool like esmtp-run,
> whatever software is being used presents the same interface.
> 
> It's not likely that we'd add a lot of customizability to this option.
> However, you can use the same SMTP server that you use with Neomutt by
> setting the smtpuser, smtpencryption, smtpserver, and smtpserverport
> options.
> 
> You can also use `git format-patch --stdout | neomutt -f -` and that may
> provide you the same functionality you were hoping for with
> `sendemail.sendmailCmd`.
> -- 
> brian m. carlson (he/him or they/them)
> Toronto, Ontario, CA



-- 
Best Regards
Wu Zhenyu


```

## brian m. carlson, 2022-11-06 09:14

Subject: Re: Can git send-email support neomutt?
Message-ID: <Y2d7B4mUPegaNPU6@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/Y2d7B4mUPegaNPU6%40tapette.crustytoothpaste.net
In-Reply-To: <20221106085820.m53mwajd5yfsyri4@desktop>

```
On 2022-11-06 at 08:58:20, Wu Zhenyu wrote:
> Thanks for your quick reply.

Hi, please keep the list in CC.  It's helpful that everyone can benefit
from seeing the replies, and it's possible someone else might have a
thought on a good way forward.

> > You can also use `git format-patch --stdout | neomutt -f -` and that may
> > provide you the same functionality you were hoping for with
> > `sendemail.sendmailCmd`.
> 
> It cannot use `git send-email -1` I like.
> 
> > Mutt and Neomutt are MUAs, which stands for mail user agent.  That is,
> > they're mail clients that people use to read, compose, and send email.
> 
> People can use MUA to send email, the only problem is `-i`. I consider the following method

Sure, I agree that we can do so.  In fact, as soon as I'm done composing
this email, I'll be using mutt to send that.

> ˋˋˋ
> [sendemail]
> 	suppresscc = author
> 	sendmailCmd = git-neomutt
> ˋˋˋ
> 
> `~/.local/bin/neomutt`
> 
> ˋˋˋ
> #!/usr/bin/env bash
> neomutt "${@//-i/}"
> ˋˋˋ
> 
> And it can work:
> 
> ˋˋˋ
> ❯ git send-email -1
> /tmp/5441yKUviQ/0001-TEST.patch
> The following files are 8bit, but do not declare a Content-Transfer-Encoding.
>     /tmp/5441yKUviQ/0001-TEST.patch
> Which 8bit encoding should I declare [UTF-8]?
> To whom should the emails be sent (if anyone)? my-another@email
> Message-ID to be used as In-Reply-To for the first email (if any)?
> Logging in...
> Warning: Fcc to an IMAP mailbox is not supported in batch mode
> Skipping Fcc to imaps://imaphz.qiye.163.com/Sent
> OK. Log says:
> Sendmail: git-neomutt -i my-another@email
> From: Wu Zhenyu <wuzhenyu@ustc.edu>
> To: my-another@email
> Subject: [PATCH] TEST
> Date: Sun,  6 Nov 2022 16:39:49 +0800
> Message-Id: <20221106083949.210946-1-wuzhenyu@ustc.edu>
> X-Mailer: git-send-email 2.38.1
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> Result: OK
> ˋˋˋ

There's nothing here preventing you from invoking an arbitrary program.
That program just has to implement a sendmail-compatible interface,
which neomutt doesn't.  If you want to wrap neomutt in a
sendmail-compatible interface like you've done, then this can work just
fine.

> I want to know can we remove `-i` to allow more MUA/MTA? If user want to add something, why not let them
> 
> ˋˋˋ
> [sendemail]
> 	sendmailCmd = msmtp -i
> ˋˋˋ

This breaks a lot of the existing tooling which expects that this is a
sendmail-compatible interface.  In addition, we might add an additional
value in the future, like -B8BITMIME (which we really should be adding
if we're sending 8bit data).  The documentation specifically says it
should be sendmail-like.

> I think it should be easy to realize.

I think this is going to cause a bunch of compatibility problems.  git
send-email is specifically designed to cause email to be sent (i.e., via
SMTP).  If you want to use another tool to do the sending, that's fine,
but then you typically want to use git format-patch to provide those to
the other program.

> And I'll consider share this tip to neomutt.
> 
> Thanks!

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

```

## Wu Zhenyu, 2022-11-06 10:17

Subject: Re: Can git send-email support neomutt?
Message-ID: <20221106101706.jvgfnzn2jlk73i3f@desktop>
URL: https://gitlist.dev/e/20221106101706.jvgfnzn2jlk73i3f%40desktop
In-Reply-To: <Y2d7B4mUPegaNPU6@tapette.crustytoothpaste.net>

```
> That program just has to implement a sendmail-compatible interface,
> which neomutt doesn't.  If you want to wrap neomutt in a
> sendmail-compatible interface like you've done, then this can work just
> fine.

Good.
The compatibility is important.
I'll ask neomutt can them provide an official sendmail-compatible interface.
Thanks!

On Sun, Nov 06, 2022 at 09:14:47AM +0000, brian m. carlson wrote:
> On 2022-11-06 at 08:58:20, Wu Zhenyu wrote:
> > Thanks for your quick reply.
> 
> Hi, please keep the list in CC.  It's helpful that everyone can benefit
> from seeing the replies, and it's possible someone else might have a
> thought on a good way forward.
> 
> > > You can also use `git format-patch --stdout | neomutt -f -` and that may
> > > provide you the same functionality you were hoping for with
> > > `sendemail.sendmailCmd`.
> > 
> > It cannot use `git send-email -1` I like.
> > 
> > > Mutt and Neomutt are MUAs, which stands for mail user agent.  That is,
> > > they're mail clients that people use to read, compose, and send email.
> > 
> > People can use MUA to send email, the only problem is `-i`. I consider the following method
> 
> Sure, I agree that we can do so.  In fact, as soon as I'm done composing
> this email, I'll be using mutt to send that.
> 
> > ˋˋˋ
> > [sendemail]
> > 	suppresscc = author
> > 	sendmailCmd = git-neomutt
> > ˋˋˋ
> > 
> > `~/.local/bin/neomutt`
> > 
> > ˋˋˋ
> > #!/usr/bin/env bash
> > neomutt "${@//-i/}"
> > ˋˋˋ
> > 
> > And it can work:
> > 
> > ˋˋˋ
> > ❯ git send-email -1
> > /tmp/5441yKUviQ/0001-TEST.patch
> > The following files are 8bit, but do not declare a Content-Transfer-Encoding.
> >     /tmp/5441yKUviQ/0001-TEST.patch
> > Which 8bit encoding should I declare [UTF-8]?
> > To whom should the emails be sent (if anyone)? my-another@email
> > Message-ID to be used as In-Reply-To for the first email (if any)?
> > Logging in...
> > Warning: Fcc to an IMAP mailbox is not supported in batch mode
> > Skipping Fcc to imaps://imaphz.qiye.163.com/Sent
> > OK. Log says:
> > Sendmail: git-neomutt -i my-another@email
> > From: Wu Zhenyu <wuzhenyu@ustc.edu>
> > To: my-another@email
> > Subject: [PATCH] TEST
> > Date: Sun,  6 Nov 2022 16:39:49 +0800
> > Message-Id: <20221106083949.210946-1-wuzhenyu@ustc.edu>
> > X-Mailer: git-send-email 2.38.1
> > MIME-Version: 1.0
> > Content-Type: text/plain; charset=UTF-8
> > Content-Transfer-Encoding: 8bit
> > 
> > Result: OK
> > ˋˋˋ
> 
> There's nothing here preventing you from invoking an arbitrary program.
> That program just has to implement a sendmail-compatible interface,
> which neomutt doesn't.  If you want to wrap neomutt in a
> sendmail-compatible interface like you've done, then this can work just
> fine.
> 
> > I want to know can we remove `-i` to allow more MUA/MTA? If user want to add something, why not let them
> > 
> > ˋˋˋ
> > [sendemail]
> > 	sendmailCmd = msmtp -i
> > ˋˋˋ
> 
> This breaks a lot of the existing tooling which expects that this is a
> sendmail-compatible interface.  In addition, we might add an additional
> value in the future, like -B8BITMIME (which we really should be adding
> if we're sending 8bit data).  The documentation specifically says it
> should be sendmail-like.
> 
> > I think it should be easy to realize.
> 
> I think this is going to cause a bunch of compatibility problems.  git
> send-email is specifically designed to cause email to be sent (i.e., via
> SMTP).  If you want to use another tool to do the sending, that's fine,
> but then you typically want to use git format-patch to provide those to
> the other program.
> 
> > And I'll consider share this tip to neomutt.
> > 
> > Thanks!
> 
> -- 
> brian m. carlson (he/him or they/them)
> Toronto, Ontario, CA



-- 
Best Regards
Wu Zhenyu

```
