Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

179
Vistas
Cree un archivo de texto y envíelo por correo electrónico sin guardarlo localmente

Me gustaría crear un archivo de texto en Python, escribirle algo y luego enviarlo por correo electrónico (poner test.txt como archivo adjunto de correo electrónico).

Sin embargo, no puedo guardar este archivo localmente. ¿Alguien sabe cómo hacer esto?

Tan pronto como abro el archivo de texto para escribirlo, se guarda localmente en mi computadora.

 f = open("test.txt","w+")

Estoy usando smtplib y MIMEMultipart para enviar el correo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

StringIO es el camino a seguir...

 from email import encoders from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from io import StringIO email = MIMEMultipart() email['Subject'] = 'subject' email['To'] = 'recipient@example.com' email['From'] = 'sender@example.com' # Add the attachment to the message f = StringIO() # write some content to 'f' f.write("content for 'test.txt'") f.seek(0) msg = MIMEBase('application', "octet-stream") msg.set_payload(f.read()) encoders.encode_base64(msg) msg.add_header('Content-Disposition', 'attachment', filename='test.txt') email.attach(msg)
over 4 years ago · Santiago Trujillo Denunciar

0

Encontré esta publicación mientras averiguaba cómo hacer esto con el EmailMessage más nuevo, que se introdujo en Python 3.6 (ver https://docs.python.org/3/library/email.message.html ). Es un poco menos código:

 from email.message import EmailMessage from io import StringIO from smtplib import SMTP message = EmailMessage() message['Subject'] = 'Subject' message['From'] = 'from@example.com' message['To'] = 'to@example.com' f = StringIO() f.name = 'attachment.txt' f.write('contents of file') f.seek(0) message.add_attachment(f.read(), filename=f.name) with SMTP('yourmailserver.com', 25) as server: server.send_message(message)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda