es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python smtplib – no envío con variables

Estoy tratando de enviar un correo electrónico utilizando la biblioteca smtplib. Funciona bien, pero si mi mensaje incluye una cadena fija + variable, no funciona.

Aquí está mi código:

destinationEmail = ‘destination@gmail.com’
server = smtplib.SMTP(“smtp.gmail.com”, 587)
server.starttls()
server.login(“me@gmail.com”, “password”)
message = f”Estoy enviando esta variable: {variableName}”
server.sendmail(“me@gmail.com”, destinationEmail, message)

El código anterior no funciona. También he intentado utilizar el siguiente formato para el mensaje:

message = “Estoy enviando esta variable: ” + variableName

Tampoco funciona. Si mi mensaje no tiene variables, se envía correctamente, por ejemplo:

message = “testing”

Otra cosa que he intentado es enviar solo la variable, por ejemplo:

message = variableName

¡Y eso funciona! Así que estoy realmente confundido acerca de lo que está mal aquí. Parece que no quiere enviar mensajes que tienen una cadena fija + variable. Por cierto, la variable que estoy usando es de tipo string. Incluso cuando uso str() alrededor de la variable, no funciona.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema al enviar un correo electrónico usando la biblioteca smtplib e incluyendo una cadena fija + variable en el mensaje se puede resolver formateando adecuadamente la cadena del mensaje. Aquí tienes un ejemplo de cómo hacerlo:

    destinationEmail = 'destination@gmail.com'
    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.starttls()
    server.login("me@gmail.com", "password")
    message = "Estoy enviando esta variable: {}".format(variableName)
    server.sendmail("me@gmail.com", destinationEmail, message)
    

    Al utilizar el formateo de cadenas con {}, podemos insertar el valor de la variable variableName en la cadena del mensaje. Esto debería permitir que el mensaje se envíe correctamente con la cadena fija y la variable incluidas.

Comments are closed.