Módulo de correo electrónico de Python para seres humanos

email¿Hay un módulo alternativo en Python?

Like requestses una "biblioteca HTTP, escrita en Python, para seres humanos"

Manejar correos Unicode con el módulo de correo electrónico de la biblioteca estándar no es divertido.

@guetti Eso suena como "para seres humanos" es su opinión sobre la facilidad de uso del módulo de correo electrónico estándar. Pero no podemos darle consejos basados ​​en opiniones como entrada. Así que edite su pregunta y describa los requisitos para el módulo alternativo en términos medibles.
Apoyando a Jan y brindándole más sugerencias: Por favor, eche un vistazo a ¿Qué se requiere para que una pregunta contenga "suficiente información"? para saber qué más podría faltar o mejorar sus posibilidades de obtener buenas respuestas. ¡Gracias!
@JanDoggen: no estoy seguro de cómo interpretó "para seres humanos" como la descripción de OP del emailmódulo estándar. Está usando el eslogan de requests, que es una mejora con respecto a los módulos estándar de Python. Soy totalmente nuevo aquí, por lo que no sé qué nivel de subjetividad es aceptable, pero me parece que OP busca algo que tenga un nivel similar de abstracción y facilidad de uso requests, pero para e- correo en lugar de HTTP.
Escribí "Manejar correos Unicode con el módulo de correo electrónico de la biblioteca estándar no es divertido". No soy un hablante nativo. Para mí esto es un requisito. ¿Alguna vez ha manejado Unicode con el módulo de correo electrónico de Python? Si no, por favor comente sobre diferentes preguntas.
@john Debería haber dicho que NO es fácil de usar

Respuestas (2)

Creo que podría estar buscando pyzmail - de los ejemplos:

import pyzmail

sender=(u'Me', 'me@foo.com')
recipients=[(u'Him', 'him@bar.com'), 'just@me.com']
subject=u'the subject'
text_content=u'Bonjour aux Fran\xe7ais'
prefered_encoding='iso-8859-1'
text_encoding='iso-8859-1'

payload, mail_from, rcpt_to, msg_id=pyzmail.compose_mail(\
        sender, \
        recipients, \
        subject, \
        prefered_encoding, \
        (text_content, text_encoding), \
        html=None, \
        attachments=[('attached content', 'text', 'plain', 'text.txt', \
                      'us-ascii')])
smtp_host='smtp.gmail.com'
smtp_port=587
smtp_mode='tls'
smtp_login='my.gmail.addresse@gmail.com'
smtp_password='my.gmail.password'

ret=pyzmail.send_mail(payload, mail_from, rcpt_to, smtp_host, \
        smtp_port=smtp_port, smtp_mode=smtp_mode, \
        smtp_login=smtp_login, smtp_password=smtp_password)

if isinstance(ret, dict):
    if ret:
        print 'failed recipients:', ', '.join(ret.keys())
    else:
        print 'success'
else:
    print 'error:', ret

No es exactamente SMTP para humanos , ¡pero tal vez llegue allí!

Gracias por esta respuesta. He buscado en la web antes de preguntar aquí. Tal vez estaba ciego. Una vez más, gracias.

¡ Asegúrese de revisar los sobres también!

from envelopes import Envelope, GMailSMTP

envelope = Envelope(
    from_addr=(u'from@example.com', u'From Example'),
    to_addr=(u'to@example.com', u'To Example'),
    subject=u'Envelopes demo',
    text_body=u"I'm a helicopter!"
)
envelope.add_attachment('/Users/bilbo/Pictures/helicopter.jpg')

# Send the envelope using an ad-hoc connection...
envelope.send('smtp.googlemail.com', login='from@example.com',
              password='password', tls=True)

# Or send the envelope using a shared GMail connection...
gmail = GMailSMTP('from@example.com', 'password')
gmail.send(envelope)

Nota : La documentación dice que debe ser considerado como beta . Utilizar con precaución.

Gracias por esta pista. El desarrollo de estos proyectos parece haberse estancado: github.com/tomekwojcik/envelopes/issues/33