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]"
2Sau 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
- DZone
- mã hóa
- ngôn ngữ
- 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