cheogram-smtp/test/EmailTest.hs -rw-r--r-- 19.3 KiB
Fix namespaces on attributes

It turns out that attributes should normally *not* have explicit namespaces.
This is because the XML spec says that an attribute with no namespace is
implicity namespaced by the element it is on (to a pseudo namespace partition).

I think this was only ever working because the XML text generator in the XMPP
library is primitive and wasn't adding prefixes.
Use localpart as fallback display name

Using bare JID is nice, but is detected by many SPAM filters as an attempt to
spoof an email address.
Update to latest purebred-email master, make tests pass
Add a lens to get at the email message in an envelope
Reconstruct References from In-Reply-To if the former is missing
Return XMPP error when message cannot be sent as email

Special case to give nicer error when it's because the JID does not map
to a valid email address. Or else generic error.

This commit also (ugh, also) changes our sendmail call to set recipients
on command line instead of taking them from the headers, which doesn't
change anythnig now really but means we can safely set other headers
Strip off "[Re: ]Chat: " subject lines from deltachat-style messengers
Implement Message-ID and References headers

Now when conversing with an XMPP client that supports <thread> the
emails are threaded correctly.
Incoming deltachat message is of type=chat
Render JID as "name" in email
Send along message id as stanza origin-id (XEP-0359)
Send nick from email From header
Add Jabber-ID header
Switch to using = for escaping

% means something historically, and while we can set ourselves up to use
it safely it might make someone grumpy
Add default subject and Chat-Version header
Add Date header, from delayed deliver if present else now
Baseline bidirectional working for text bodies