2012-08-07 29 views
6

Estoy tratando de usar el smtplib de Python para establecer la prioridad de un correo electrónico en alto. He utilizado con éxito esta biblioteca para enviar correos electrónicos, pero no estoy seguro de cómo hacer que funcione la prioridad.SMTP enviando un correo electrónico de prioridad

import smtplib 
from smtplib import SMTP 

Mi primer intento fue utilizar esto desde la investigación de cómo configurar la prioridad:

smtp.sendmail(from_addr, to_addr, msg, priority ="high") 

Sin embargo, me da un error: keyword priority is not recognized.

También he intentado usar:

msg['X-MSMail-Priority'] = 'High' 

Sin embargo me sale otro error. ¿Hay alguna manera de establecer la prioridad usando solo smtplib?

+4

Y lo que es "otro error" exactamente? Aparte de eso: estás inventando nuevas llamadas API. El método sendmail() no toma un parámetro de 'prioridad'. ¿Por qué no revisas los documentos de la API? sendmail() acepta un parámetro mail_options que es una lista de parámetros ... no adivine API, búsquelos. –

+0

No encuentro ninguna documentación en la web que especifique los parámetros de mail_options. Intenté sin éxito esto: smtp.sendmail (from_addr, to_addr, msg [, mail_options = [priority = "high"]]] – Sarah92

+0

@SarahAddis [The docs] (http://docs.python.org/library/smtplib) .html # smtplib.SMTP.sendmail) indica claramente que "el que llama puede pasar una lista de opciones de ESMTP (como 8bitmime) para usar en los comandos MAIL FROM como opciones de correo. Opciones de ESMTP (como los comandos de DSN) que se deben usar con todos los comandos RCPT se pueden pasar como rcpt_options ". Deberá buscar en las RFC las opciones de ESMPT y las opciones de RCPT. – glglgl

Respuesta

15

La prioridad es solo una cuestión de contenido de correo electrónico (para ser exactos, contenido del encabezado). Ver here.

La siguiente pregunta sería cómo poner eso en un correo electrónico.

Eso depende completamente de cómo cree ese correo electrónico. Si se utiliza el módulo de email, que haría de esta manera:

from email.Message import Message 
m = Message() 
m['From'] = 'me' 
m['To'] = 'you' 
m['X-Priority'] = '2' 
m['Subject'] = 'Urgent!' 
m.set_payload('Nothing.') 

y luego usarlo con

smtp.sendmail(from_addr, to_addr, m.as_string()) 
+0

¿Cómo en "Marcar" al enviar un correo? Intenté lo anterior con una línea adicional como "m ['Flag'] = '1'". No recibí ningún error pero la bandera tampoco estaba en ninguno. – zingy

+1

@zingy use priority 2, le dará su marca – Busturdust

+0

@Busturdust Con la prioridad '2' solo apareció el signo de exclamación pero la bandera no estaba habilitada. – zingy

Cuestiones relacionadas