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.

Eres un traductor español que traduce documentos de TI. Traduce el siguiente texto al español. Archivo de texto que no está incrustado en HTML al enviar correos electrónicos a través de Python. (Texto en inglés) File formats supported by the application include .doc, .docx, .pdf, .txt, and .rtf. The maximum file size that can be uploaded is 10MB. If a user attempts to upload a larger file, an error message will be displayed. (Traducción al español) Los formatos de archivo admitidos por la aplicación incluyen .doc, .docx, .pdf, .txt y .rtf. El tamaño máximo de archivo que se puede cargar es de 10MB. Si un usuario intenta cargar un archivo más grande, se mostrará un mensaje de error.

Tengo este código de Python que utiliza MIME para enviar un recibo en un servidor de Gmail.

email["Subject"] = "Su recibo de PetShop"
    email["From"] = remitente
    email["To"] = destinatario 

plain = f"""\
¡Hola {nombre}! ¡Gracias por comprar con nosotros!
A continuación, se muestra su recibo:
{recibo}

¡Esperamos que tenga un día maravilloso!
----------------------------------------------
Si tiene problemas para ver este mensaje,
por favor, póngase en contacto con nuestra línea de ayuda al cliente:
12334


"""

html = f"""


<html>

<body style="background-color:#33476c">
    <h1 style="font-family:Arial">¡Hola {nombre}, gracias por comprar con nosotros!</h1>
    <h3 style="font-family:Arial">A continuación, se muestra su recibo:</h3>
    <br>
    </br>
    <object data="hi.txt" type="text/plain"
        width="500" style="height: 300px">
    <a href="hi.txt">¿No hay soporte?</a>
    </object>
    <p style="font-size:24px">------------------------------------------------------------------------------------------------------------------------------------------</p>
    <p style="font-size:14px">Si tiene problemas para acceder a este correo electrónico,
    no dude en llamar a nuestra línea de ayuda al cliente al 12344</p>
</body>


</html>"""
    parte1 = MIMEText(plain,"plain")
    parte2 = MIMEText(html,"html")

email.attach(parte1)
email.attach(parte2)


Pero el archivo de texto que quiero incrustar en mi html no se muestra en el correo electrónico. Todo lo demás sí, pero el archivo de texto no. ¿Qué debo hacer? El archivo de texto está en el mismo directorio que mi archivo de Python.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que necesite agregar el archivo de texto como un adjunto al correo electrónico. Puede hacerlo utilizando el método email.attach(). Por ejemplo:

    # Abrir el archivo de texto
    with open('hi.txt', 'rb') as fp:
        # Crear un objeto MIMEBase
        attachment = MIMEBase('text', 'plain')
        # Agregar el archivo como adjunto
        attachment.set_payload(fp.read())
    
    # Codificar el adjunto
    encoders.encode_base64(attachment)
    
    # Agregar encabezado
    attachment.add_header('Content-Disposition', 'attachment', filename='hi.txt')
    
    # Adjuntar el adjunto al correo electrónico
    email.attach(attachment)
    

Comments are closed.