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.
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:
Al utilizar el formateo de cadenas con
{}
, podemos insertar el valor de la variablevariableName
en la cadena del mensaje. Esto debería permitir que el mensaje se envíe correctamente con la cadena fija y la variable incluidas.