मैंने कई ट्यूटोरियल्स के साथ-साथ स्टैक ओवरफ़्लो पर अन्य प्रश्नों को देखा है, और दस्तावेज़ीकरण और स्पष्टीकरण न्यूनतम, केवल अस्पष्ट कोड हैं। मैं एक फाइल भेजना चाहता हूं जिसे मैंने पहले से ही ज़िप किया है, और इसे एक अनुलग्नक के रूप में भेजना है। मैंने दिए गए कोड की प्रतिलिपि बनाने और चिपकाने का प्रयास किया है, लेकिन यह काम नहीं कर रहा है, इसलिए मैं समस्या को ठीक नहीं कर सकता।पायथन में अनुलग्नक के रूप में ज़िप फ़ाइल कैसे भेजें?
तो मैं जो पूछ रहा हूं वह यह है कि अगर कोई यह बताता है कि smtplib के साथ-साथ ईमेल और एमआईएम पुस्तकालय एक फ़ाइल भेजने के लिए मिलकर काम करते हैं, तो विशेष रूप से, इसे ज़िप फ़ाइल के साथ कैसे करें। किसी भी सहायता की सराहना की जाएगी।
import smtplib
import zipfile
import tempfile
from email import encoders
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
def send_file_zipped(the_file, recipients, sender='[email protected]'):
myzip = zipfile.ZipFile('file.zip', 'w')
# Create the message
themsg = MIMEMultipart()
themsg['Subject'] = 'File %s' % the_file
themsg['To'] = ', '.join(recipients)
themsg['From'] = sender
themsg.preamble = 'I am not using a MIME-aware mail reader.\n'
msg = MIMEBase('application', 'zip')
msg.set_payload(zf.read())
encoders.encode_base64(msg)
msg.add_header('Content-Disposition', 'attachment',
filename=the_file + '.zip')
themsg.attach(msg)
themsg = themsg.as_string()
# send the message
smtp = smtplib.SMTP()
smtp.connect()
smtp.sendmail(sender, recipients, themsg)
smtp.close()
मुझे लगता है इस मुद्दे को इस कोड के साथ-साथ एक फ़ाइल से ज़िप है:
इस कोड है कि हर किसी के लिए संदर्भित करता है। मैं कुछ भी ज़िप नहीं करना चाहता क्योंकि मेरे पास पहले से ही एक ज़िप फ़ाइल है जिसे मैं भेजना चाहता हूं। किसी भी मामले में, यह कोड खराब रूप से दस्तावेज के साथ-साथ पाइथन पुस्तकालयों को भी दस्तावेज करता है क्योंकि वे पिछले आईएमजी फ़ाइल और टेक्स्ट फ़ाइलों पर किसी भी अंतर्दृष्टि प्रदान नहीं करते हैं।
अद्यतन: त्रुटि अब मैं प्राप्त कर रहा हूं। मैंने यह भी अपडेट किया है कि
Traceback (most recent call last):
File "/Users/Zeroe/Documents/python_hw/cgi-bin/zip_it.py", line 100, in <module>
send_file_zipped('hw5.zip', '[email protected]')
File "/Users/Zeroe/Documents/python_hw/cgi-bin/zip_it.py", line 32, in send_file_zipped
msg.set_payload(myzip.read())
TypeError: read() takes at least 2 arguments (1 given)
* * * * किस * कोड में * कोड काम नहीं कर रहा है? – Cameron
यह है ... 'ईमेल' मॉड्यूल के लिए दस्तावेज़ में दूसरा कोड नमूना। आपको कोई जवाब देने के लिए कुछ विनिर्देश देना होगा जो अनिवार्य रूप से उस नमूने की एक प्रति नहीं होगी। – millimoose
इसकी प्रतिलिपि नहीं है ... मैं उनसे वास्तव में यह बताने के लिए कह रहा हूं कि यह एक ज़िप फ़ाइल के माध्यम से मुझे क्या चाहिए। लेकिन मैं वही कोड पोस्ट करूंगा जो हर कोई लगातार संदर्भित करता है लेकिन समझाता नहीं है ... – Andy