[py3] Pass bytes as "msg" to smtplib.SMTP.sendmail()
When passing a unicode string to smtplib.SMTP.sendmail() as "msg"
argument, there is an implicit bytes encoding using "ascii" encoding in
python3. Of course this does not work if the string contains non-ASCII
characters. In fact, config's sendmails method intent to pass bytes to
smtplib.SMTP.sendmail() as it uses msg.as_string() method.
Unfortunately, in python3, this method returns a unicode string whereas
it returns a bytes string in python2; we thus fix this by calling
as_bytes() method on python3.
As there is no "as_bytes" method in python2, we need to handle python2
compatibility by hand and either call as_string() or as_bytes().
In testlib, where we mock smtplib.SMTP, we need to keep the "msg"
argument of Email class (defined in testlib as well) a unicode string.
Otherwise, it fails to be parsed by email.message_from_string() (from
stdlib) if it is bytes on python3.
CubicWeb semantic web framework
===============================
CubicWeb is a entities / relations based knowledge management system
developped at Logilab.
This package contains:
- a repository server
- a RQL command line client to the repository
- an adaptative modpython interface to the server
- a bunch of other management tools
Install
-------
More details at https://cubicweb.readthedocs.io/en/3.26/book/admin/setup
Getting started
---------------
Execute::
apt-get install cubicweb cubicweb-dev cubicweb-blog
cubicweb-ctl create blog myblog
cubicweb-ctl start -D myblog
sensible-browser http://localhost:8080/
Details at https://cubicweb.readthedocs.io/en/3.26/tutorials/base/blog-in-five-minutes
You can also look at the latest builds on Logilab's jenkins:
https://jenkins.logilab.org/
Documentation
-------------
Look in the doc/ subdirectory or read https://cubicweb.readthedocs.io/en/3.26/
CubicWeb includes the Entypo pictograms by Daniel Bruce — http://www.entypo.com
Contributing
------------
Patches should be submitted by email at the cubicweb-devel@lists.cubicweb.org
mailing list in order to get reviewed by project integrators or any community
member.
The simplest way of send patches is to use the ``hg email`` command available
through the *patchbomb* extension of Mercurial. Preferably, patches should be
*in the message body* of emails. When submitting a revised version of a patch
series, a prefix indicating the iteration number ``<n>`` of the series should
be added to email subject prefixes; this can be achieved by specifying a
``--flag v<n>`` option to ``hg email`` command. If needed you can also use the
--in-reply-to option.
Examples:
hg email --to cubicweb-devel@lists.cubicweb.org --intro -r <start>::<end>
hg email --flag V2 --to cubicweb-devel@lists.cubicweb.org -r <start>::<end>
If you have any questions you can also come on Logilab's public XMPP room using
a XMPP client: public@conference.jabber.logilab.org
Mailing list: https://lists.cubicweb.org/mailman/listinfo/cubicweb-devel
Patchbomb extension: https://www.mercurial-scm.org/wiki/PatchbombExtension
Good practice on sending email patches: https://www.mercurial-scm.org/wiki/ContributingChanges#Emailing_patches