1

Python 電子メール クライアントを使用して電子メールを送信しようとしています。次のコードを書きましたが、添付ファイルとしてではなく、本文として添付ファイルを送信します。

誰かがコードの何が問題なのか教えてください:

    # Import smtplib for the actual sending function
import smtplib

# Here are the email package modules we'll need
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


EMAIL_LIST = ['rec@rec.com']

# Create the container (outer) email message.
msg = MIMEMultipart()
msg['Subject'] = 'THIS DOES NOT WORK'
# me == the sender's email address
# family = the list of all recipients' email addresses
msg['From'] = 'send@sender.com'
print EMAIL_LIST
print '--------------------'
print ', '.join(EMAIL_LIST)
msg['To'] = ', '.join(EMAIL_LIST)
msg.preamble = 'THIS DOES NOT WORK'


fileName = 'c:\\p.trf'
with open(fileName, 'r') as fp:
    attachment = MIMEText(fp.read())
    fp.close()
    msg.add_header('Content-Disposition', 'attachment', filename=fileName)
    msg.attach(attachment)


# Send the email via our own SMTP server.
s = smtplib.SMTP('localhost')
s.sendmail('julka@pv.com', EMAIL_LIST, msg.as_string())
s.quit()
4

1 に答える 1

0

添付ファイルには、おそらく次のMIMEBaseようなものを使用する必要があります。

import os
from email import encoders
from email.mime.base import MIMEBase

with open(fileName,'r') as fp:
    attachment = MIMEBase('application','octet-stream')
    attachment.set_payload(fp.read())
    encoders.encode_base64(attachment)
    attachment.add_header('Content-Disposition','attachment',filename=os.path.split(fileName)[1])
    msg.attach(attachment)
于 2012-09-14T09:43:38.733 に答える