go-gmime icon indicating copy to clipboard operation
go-gmime copied to clipboard

Update Headers and RawHeaders using canonical MIME keys.

Open naspeh opened this issue 7 months ago • 3 comments

Hello!

Thank you for the package!

I've discovered problems using msg.Headers().Get("Message-ID") which I try to fix in this PR.


If you have a header like

Message-ID: msg@id

You can't use msg.Headers().Get("Message-ID") or msg.Headers().Get("Message-Id") , as you get an empty string. Because MIMEHeader.Get uses CanonicalMIMEHeaderKey.

I reproduced this with tests (included with the PR)

=== RUN   TestHeaders
    gmime_test.go:182: 
        	Error Trace:	gmime_test.go:182
        	Error:      	Not equal: 
        	            	expected: "<CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>"
        	            	actual  : ""
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-<CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>
        	            	+
        	Test:       	TestHeaders
    gmime_test.go:183: 
        	Error Trace:	gmime_test.go:183
        	Error:      	Not equal: 
        	            	expected: "<CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>"
        	            	actual  : ""
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-<CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>
        	            	+
        	Test:       	TestHeaders


...
=== RUN   TestRawHeaders
    gmime_test.go:218: 
        	Error Trace:	gmime_test.go:218
        	Error:      	Not equal: 
        	            	expected: " <CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>\n"
        	            	actual  : ""
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,2 +1 @@
        	            	- <CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>
        	            	 
        	Test:       	TestRawHeaders
    gmime_test.go:219: 
        	Error Trace:	gmime_test.go:219
        	Error:      	Not equal: 
        	            	expected: " <CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>\n"
        	            	actual  : ""
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,2 +1 @@
        	            	- <CAGPJ=uY91HEGoszHE9ELkB3wfcNJN4NGORM9q-vV8o_XJceBmg@mail.gmail.com>

        	            	 


naspeh avatar Jul 04 '24 10:07 naspeh