Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

184
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!