threads / patch / 20278

patchpost-receive-email: Set content-type and encoding in generated mail

Subject: [PATCH] post-receive-email: Set content-type and encoding in generated mail

## tl;dr

5 messages between Jul 29, 2009 and Jul 31, 2009. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Fabian Emmes· Jul 29, 2009, 13:48 UTC · lore

Add proper content-type header to mails generated by post-receive-email, as suggested by Alexander Gerasiov in http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg588535.html

Signed-off-by: Fabian Emmes <emmes@informatik.rwth-aachen.de>
---
 contrib/hooks/post-receive-email |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to contrib/hooks/post-receive-email +1 −0
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index 2a66063..0c50155 100755
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -197,6 +197,7 @@ generate_email_header()
 	cat <<-EOF
 	To: $recipients
 	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
+	Content-Type: text/plain; charset=utf-8
 	X-Git-Refname: $refname
 	X-Git-Reftype: $refname_type
 	X-Git-Oldrev: $oldrev
-- 
1.6.3.1.9.g95405b
Teemu Likonen· Jul 29, 2009, 14:00 UTC · re: Fabian Emmes · lore

Re: [PATCH] post-receive-email: Set content-type and encoding in generated mail

On 2009-07-29 15:48 (+0200), Fabian Emmes wrote:
Show 21 quoted lines
> Add proper content-type header to mails generated by post-receive-email, as
> suggested by Alexander Gerasiov in
> http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg588535.html
>
> Signed-off-by: Fabian Emmes <emmes@informatik.rwth-aachen.de>
> ---
>  contrib/hooks/post-receive-email |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
> index 2a66063..0c50155 100755
> --- a/contrib/hooks/post-receive-email
> +++ b/contrib/hooks/post-receive-email
> @@ -197,6 +197,7 @@ generate_email_header()
>  	cat <<-EOF
>  	To: $recipients
>  	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
> +	Content-Type: text/plain; charset=utf-8
>  	X-Git-Refname: $refname
>  	X-Git-Reftype: $refname_type
>  	X-Git-Oldrev: $oldrev
That's not complete. You need all these:
    MIME-Version: 1.0
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: 8bit
Jeff King· Jul 29, 2009, 14:46 UTC · re: Fabian Emmes · lore

Re: [PATCH] post-receive-email: Set content-type and encoding in generated mail

On Wed, Jul 29, 2009 at 03:48:24PM +0200, Fabian Emmes wrote:
Show 10 quoted lines
> --- a/contrib/hooks/post-receive-email
> +++ b/contrib/hooks/post-receive-email
> @@ -197,6 +197,7 @@ generate_email_header()
>  	cat <<-EOF
>  	To: $recipients
>  	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
> +	Content-Type: text/plain; charset=utf-8
>  	X-Git-Refname: $refname
>  	X-Git-Reftype: $refname_type
>  	X-Git-Oldrev: $oldrev

Shouldn't this be $(git config i18n.logOutputEncoding), since you will be inserting the output of git rev-list into the mail?

And as Teemu mentioned, you need a mime-version and a transfer-encoding header, as well.

So maybe (totally untested):
---
Show changes to contrib/hooks/post-receive-email +5 −0
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index 2a66063..0c1c6ad 100755
--- a/contrib/hooks/post-receive-email
+++ b/contrib/hooks/post-receive-email
@@ -192,11 +192,16 @@ generate_email()
 
 generate_email_header()
 {
+	encoding=`git config i18n.logOutputEncoding`
+	test -z "$encoding" && encoding=utf-8
 	# --- Email (all stdout will be the email)
 	# Generate header
 	cat <<-EOF
 	To: $recipients
 	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
+	MIME-Version: 1.0
+	Content-Type: text/plain; charset=$encoding
+	Content-Transfer-Encoding: 8bit
 	X-Git-Refname: $refname
 	X-Git-Reftype: $refname_type
 	X-Git-Oldrev: $oldrev
Fabian Emmes· Jul 30, 2009, 08:02 UTC · re: Jeff King · lore

Re: [PATCH] post-receive-email: Set content-type and encoding in generated mail

Hi,

thanks Teemu and Jeff for correcting the errors. Indeed I assumed that git log would always output UTF-8 and a "Content-Type" header would be valid on its own. The patch of Jeff solves my problem. I tested the results in mutt, kmail and thunderbird.

Regards, Fabian

On 29. Jul, 10:46, Jeff King wrote:
Show 43 quoted lines
> On Wed, Jul 29, 2009 at 03:48:24PM +0200, Fabian Emmes wrote:
> 
> > --- a/contrib/hooks/post-receive-email
> > +++ b/contrib/hooks/post-receive-email
> > @@ -197,6 +197,7 @@ generate_email_header()
> >  	cat <<-EOF
> >  	To: $recipients
> >  	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
> > +	Content-Type: text/plain; charset=utf-8
> >  	X-Git-Refname: $refname
> >  	X-Git-Reftype: $refname_type
> >  	X-Git-Oldrev: $oldrev
> 
> Shouldn't this be $(git config i18n.logOutputEncoding), since you will
> be inserting the output of git rev-list into the mail?
> 
> And as Teemu mentioned, you need a mime-version and a transfer-encoding
> header, as well.
> 
> So maybe (totally untested):
> 
> ---
> diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
> index 2a66063..0c1c6ad 100755
> --- a/contrib/hooks/post-receive-email
> +++ b/contrib/hooks/post-receive-email
> @@ -192,11 +192,16 @@ generate_email()
>  
>  generate_email_header()
>  {
> +	encoding=`git config i18n.logOutputEncoding`
> +	test -z "$encoding" && encoding=utf-8
>  	# --- Email (all stdout will be the email)
>  	# Generate header
>  	cat <<-EOF
>  	To: $recipients
>  	Subject: ${emailprefix}$projectdesc $refname_type, $short_refname, ${change_type}d. $describe
> +	MIME-Version: 1.0
> +	Content-Type: text/plain; charset=$encoding
> +	Content-Transfer-Encoding: 8bit
>  	X-Git-Refname: $refname
>  	X-Git-Reftype: $refname_type
>  	X-Git-Oldrev: $oldrev
-- 
Fabian Emmes           mailto:emmes@informatik.rwth-aachen.de
LuFG Informatik 2      http://verify.rwth-aachen.de/emmes/
RWTH Aachen            phone: +49 241 80-21241
Jeff King· Jul 31, 2009, 01:52 UTC · re: Fabian Emmes · lore

Re: [PATCH] post-receive-email: Set content-type and encoding in generated mail

On Thu, Jul 30, 2009 at 10:02:06AM +0200, Fabian Emmes wrote:
> thanks Teemu and Jeff for correcting the errors. Indeed I assumed that
> git log would always output UTF-8 and a "Content-Type" header would be
> valid on its own. The patch of Jeff solves my problem. I tested the
> results in mutt, kmail and thunderbird.

Great. Would you mind re-submitting the patch you tested with a proper write-up in the commit message?

-Peff

← back to recent threads