libreria - smtplib python 3 example
Python: "asunto" no se muestra cuando se envía un correo electrónico usando el módulo smtplib (5)
Adjuntarlo como un encabezado:
message = ''Subject: {}/n/n{}''.format(SUBJECT, TEXT)
y entonces:
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
También considere usar el email
estándar del módulo Python, ya que le ayudará mucho a la hora de redactar correos electrónicos.
Puedo enviar correo electrónico con éxito usando el módulo smtplib. Pero cuando se envía el emial, no se incluye el asunto en el correo electrónico enviado.
import smtplib
SERVER = <localhost>
FROM = <from-address>
TO = [<to-addres>]
SUBJECT = "Hello!"
message = "Test"
TEXT = "This message was sent with Python''s smtplib."
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
¿Cómo debo escribir "server.sendmail" para incluir el TEMA también en el correo electrónico enviado?
Si utilizo, server.sendmail (FROM, TO, message, SUBJECT), da error sobre "smtplib.SMTPSenderRefused"
Creo que hay que incluirlo en el mensaje:
import smtplib
message = """From: From Person <[email protected]>
To: To Person <[email protected]>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test
This is an e-mail message to be sent in HTML format
<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""
try:
smtpObj = smtplib.SMTP(''localhost'')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
código de: http://www.tutorialspoint.com/python/python_sending_email.htm
Probablemente deberías modificar tu código a algo como esto:
from smtplib import SMTP as smtp
from email.mime.text import MIMEText as text
s = smtp(server)
s.login(<mail-user>, <mail-pass>)
m = text(message)
m[''Subject''] = ''Hello!''
m[''From''] = <from-address>
m[''To''] = <to-address>
s.sendmail(<from-address>, <to-address>, m.as_string())
Obviamente, las variables <>
deben ser valores de cadena reales, o variables válidas, simplemente las completé como marcadores de posición. Esto funciona para mí al enviar mensajes con temas.
Vea la nota al final de la documentación de smtplib:
In general, you will want to use the email package''s features to construct an email message, which you can then convert to a string and send via sendmail(); see email: Examples.
Aquí está el enlace a la sección de ejemplos de la documentación del email
, que de hecho muestra la creación de un mensaje con una línea de asunto. http://docs.python.org/library/email-examples.html#email-examples
Parece que smtplib no admite la adición de temas directamente y espera que el mensaje ya esté formateado con un tema, etc. Ahí es donde entra el módulo de email
.
prueba esto:
import smtplib
from email.mime.multipart import MIMEMultipart
msg = MIMEMultipart()
msg[''From''] = ''sender_address''
msg[''To''] = ''reciver_address''
msg[''Subject''] = ''your_subject''
server = smtplib.SMTP(''localhost'')
server.sendmail(''from_addr'',''to_addr'',msg.as_string())