Đính kèm tệp văn bản vào email python

Xin chào mọi người, Hôm nay chúng ta sẽ học cách gửi tệp hoặc tệp đính kèm vào email bằng Python. Đó là một trong những thứ thú vị nhất có thể được thực hiện bằng một số thư viện Python. Chúng tôi sẽ sử dụng “smtplib” được bao gồm trong Python cùng với một số thư viện bên ngoài để đạt được điều này

Vậy hãy bắt đầu

Nhập thư viện để gửi tệp đính kèm với email

Chúng tôi sẽ nhập “smtplib” để tạo một phiên bản của Giao thức chuyển thư đơn giản cho phép chúng tôi gửi thư của mình

Nếu chúng tôi gửi thư mà không có bất kỳ tệp nào, điều này là đủ, bạn có thể tham khảo Gửi email này bằng SMTP trong Python. Tuy nhiên, vì thư của chúng tôi chứa một tệp, chúng tôi sẽ phải bao gồm một số thư viện khác như được đề cập bên dưới

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

Ghi chú

Vui lòng lưu ý các điểm sau để mã đã cho hoạt động bình thường mà không bị gián đoạn

  • truy cập “https. //tài khoản của tôi. Google. com/lesssecureapps” và BẬT nó
  • Tệp được gửi và mã python của bạn phải nằm trong cùng một thư mục
  • Chúng tôi đang gửi thư bằng Gmail có số cổng 587, một số trang web khác sẽ có số cổng khác

Bây giờ, chúng ta sẽ thảo luận ngắn gọn về tất cả các bước của chương trình python

  • Lưu trữ địa chỉ email của người gửi và người nhận
    sender_email = "[email protected]"
    receiver_email = "[email protected]"
  • Tạo một thể hiện của MIMEMultipart
    message = MIMEMultipart[]
  • Chỉ định người gửi_email, người nhận_email và chủ đề thư của chúng tôi
    message["From"] = sender_email
    message['To'] = receiver_email
    message['Subject'] = "sending mail using python"
  • Vì chúng tôi phải gửi tệp “doc. txt”,  nó được mở ở chế độ chỉ đọc ở định dạng nhị phân
    file = "doc.txt"
    attachment = open[file,'rb']

    Nếu tệp của bạn không có trong thư mục chứa chương trình Python, bạn sẽ phải đặt vị trí tệp chính xác của mình
    thí dụ. tệp = “tên_tệp”
    tệp đính kèm = open["vị trí tệp",'rb']

  • Tạo một thể hiện của MIMEBase
    obj = MIMEBase['application','octet-stream']
  • Nói một cách đơn giản, tải trọng là tệp mà chúng tôi đang gửi thư và ở đây tải trọng đang được mã hóa
    obj.set_payload[[attachment].read[]]
    encoders.encode_base64[obj]
    obj.add_header['Content-Disposition',"attachment; filename= "+file]
  • Đính kèm 'obj' vào tin nhắn của chúng tôi____7_______
  • Chuyển đổi tin nhắn thành một chuỗi giống như được đưa ra dưới đây. ________số 8_______
  • Phiên SMTP được tạo và TLS [Bảo mật lớp truyền tải] được bắt đầu, TLS được sử dụng để bảo mật kết nối và mật khẩu chính xác phải được cung cấp để phiên bắt đầu và xác thực phù hợp_______9_______

    mật khẩu -> mật khẩu id email của bạn

  • Gửi thư
    sender_email = "[email protected]"
    receiver_email = "[email protected]"
    0
  • Kết thúc phiên
    sender_email = "[email protected]"
    receiver_email = "[email protected]"
    1
  • Dưới đây là chương trình Python hoàn chỉnh của chúng tôi để gửi tệp cùng với email.
    sender_email = "[email protected]"
    receiver_email = "[email protected]"
    2

    Sau khi thực thi thành công mã này, thư chứa tệp của bạn sẽ được gửi đến người nhận và dòng chữ “THƯ CỦA BẠN ĐÃ ĐƯỢC GỬI THÀNH CÔNG” được in trên thiết bị đầu cuối của bạn

    1. DZone
    2. mã hóa
    3. ngôn ngữ
    4. Gửi email bằng Python với tệp đính kèm tệp văn bản

    Gửi email bằng Python với tệp đính kèm tệp văn bản

    qua

    Trình quản lý đoạn trích

    ·

    Tháng 4. 26, 07 · Đoạn mã

    Giống

    Nhận xét

    Tiết kiệm

    tiếng riu ríu

    Chia sẻ

    5. 99K Lượt xem

    Tham gia cộng đồng DZone và có được trải nghiệm thành viên đầy đủ

    Tham gia miễn phí

    // description of your code here
    Send an email in python with a text attachment. You can change the attachment type by adjusting the part.startbody label in the attachment section [ie, 'image/jpg' or whatever]
    
    
    import smtplib, sys, MimeWriter, StringIO, base64
    import os
    def mail[serverURL=None, sender='', to='', subject='', text='']:
        """
        Usage:
        mail['somemailserver.com', 'me@example.com', 'someone@example.com', 'test', 'This is a test']
        """
        message = StringIO.StringIO[]
        writer = MimeWriter.MimeWriter[message]
        writer.addheader['Subject', subject]
        writer.startmultipartbody['mixed']
    
        # start off with a text/plain part
        part = writer.nextpart[]
        body = part.startbody['text/plain']
        body.write[text]
    
        # now add an attachment
        part = writer.nextpart[]
        part.addheader['Content-Transfer-Encoding', 'base64']
        body = part.startbody['text/plain']
        base64.encode[open['myfile.txt', 'rb'], body]
    
        # finish off
        writer.lastpart[]
    
        # send the mail
        smtp = smtplib.SMTP[serverURL]
        smtp.sendmail[sender, to, message.getvalue[]]
        smtp.quit[]
    

    Tệp văn bản Python [ngôn ngữ]

    Ý kiến ​​​​của những người đóng góp DZone là của riêng họ

    Phổ biến trên DZone

    • Đơn giản hóa thử nghiệm A/B/n của dịch vụ phụ trợ
    • 5 nút hàng đầu. js Khung API REST
    • Các lỗi thường gặp trong DevOps Metrics
    • 5 thách thức trong việc xây dựng hệ thống phân tán

    Bình luận

    Tài nguyên đối tác

Chủ Đề