Email được gửi với 3 dòng mã cuối cùng. Và bạn không cần phải cài đặt bất kỳ gói bổ sung nào để nó hoạt động [tôi thích nó. ]. Đoạn mã trên đang sử dụng máy chủ Gmail SMTP [Giao thức truyền thư đơn giản]. Nếu bạn đang sử dụng nhà cung cấp email khác thì bạn cần thay đổi
pip install python-dotenv
0 thành địa chỉ nhà cung cấp của bạn và thay đổi số cổng [pip install python-dotenv
1]. Bạn cần đặt các biến pip install python-dotenv
2 và pip install python-dotenv
3 thành của bạn. Đối với mật khẩu email, vui lòng tạo pip install python-dotenv
4 cho Gmail của bạn. Đây là liên kết với các tài liệu về cách tạo pip install python-dotenv
4 cho tài khoản Gmail. Bạn nên tạo một tài khoản Gmail mới chỉ để sử dụng trong các tập lệnh Python [một tài khoản dùng một lần]Đoạn mã trên xây dựng đối tượng
pip install python-dotenv
6. Thật dễ dàng để thao tác. Để đặt chủ đề của email, chỉ cần thay đổi chuỗi được gán thành pip install python-dotenv
7. Nội dung email được đặt với pip install python-dotenv
8Đoạn mã trên đơn giản và có thể được sử dụng cho các thử nghiệm nhanh. Nếu bạn định sử dụng nó trong dự án nghiêm túc, hãy thực hiện tái cấu trúc mã
Không giữ mật khẩu trong mã
Xin đừng giữ bí mật được mã hóa cứng. Vui lòng không đẩy chúng vào kho lưu trữ. Vui lòng giữ tất cả bí mật dưới dạng biến môi trường hoặc trong tệp
pip install python-dotenv
9. Có một gói fatnatstic EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
0 để tải các biến môi trường từ tệp pip install python-dotenv
9. Vui lòng không đẩy tệp pip install python-dotenv
9 vào kho lưu trữ. Vui lòng thêm pip install python-dotenv
9 vào EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
4Bạn có thể dễ dàng cài đặt
EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
0 vớipip install python-dotenv
Sau đó tạo tệp
pip install python-dotenv
9EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
Vui lòng giữ tệp
pip install python-dotenv
9 trong cùng thư mục với mã của bạn. Để tải các giá trị từ pip install python-dotenv
9, bạn có thể sử dụng đoạn mã sauimport os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
OK, mã của chúng tôi trông đẹp hơn. Bước tiếp theo sẽ là biến nó thành một hàm đẹp
Python gửi email dưới dạng một chức năng
Mã Python để gửi email có thể được bao gồm trong một hàm send_email[]
. Nó sẽ chấp nhận ba đối số
0 - địa chỉ người gửi email,import os from dotenv import load_dotenv _ = load_dotenv[] email_address = os.environ.get["EMAIL_ADDRESS"] email_password = os.environ.get["EMAIL_PASSWORD"]
1 - chủ đề email,import os from dotenv import load_dotenv _ = load_dotenv[] email_address = os.environ.get["EMAIL_ADDRESS"] email_password = os.environ.get["EMAIL_PASSWORD"]
2 - nội dung emailimport os from dotenv import load_dotenv _ = load_dotenv[] email_address = os.environ.get["EMAIL_ADDRESS"] email_password = os.environ.get["EMAIL_PASSWORD"]
Mã dưới đây
import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]
def send_email[to, subject, message]:
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
# create email
msg = EmailMessage[]
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = to
msg.set_content[message]
# send email
with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
smtp.login[email_address, email_password]
smtp.send_message[msg]
Đoạn mã trên không hoàn hảo, nhưng nó đơn giản. Tại sao nó không hoàn hảo?
import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]
def send_email[to, subject, message]:
try:
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
if email_address is None or email_password is None:
# no email address or password
# something is not configured properly
print["Did you set email address and password correctly?"]
return False
# create email
msg = EmailMessage[]
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = to
msg.set_content[message]
# send email
with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
smtp.login[email_address, email_password]
smtp.send_message[msg]
return True
except Exception as e:
print["Problem during send email"]
print[str[e]]
return False
Đoạn mã trên tốt hơn. Chúng tôi đã thêm xử lý ngoại lệ và kiểm tra thiết lập email và mật khẩu. Hàm send_email[]
trả về
import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
4 nếu gửi email thành công và import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
5 nếu khôngTóm lược
Mã Python ở trên giúp gửi email dễ dàng. Nó có thể là một khởi đầu tuyệt vời để tạo ra một số hệ thống thông báo hoặc tự động hóa. Nếu bạn muốn có nhiều chức năng hơn, bạn có thể tự viết mã hoặc sử dụng các gói hiện có. Tôi muốn giới thiệu
import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
6 để gửi email nâng cao [nếu bạn muốn gửi tệp đính kèm, phiên bản HTML của nội dung]. Việc sử dụng import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
6 rất đơn giản# after installation with
# pip install yagmail[all]
import yagmail
yag = yagmail.SMTP[EMAIL_ADDRESS, EMAIL_PASSWORD]
yag.send["to@someone.com", "subject", "message"]
Nếu bạn đang sử dụng khung web Django, bạn có thể sử dụng
import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
8 hoặc import os
from dotenv import load_dotenv
_ = load_dotenv[]
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
9 từ import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]
def send_email[to, subject, message]:
email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
# create email
msg = EmailMessage[]
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = to
msg.set_content[message]
# send email
with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
smtp.login[email_address, email_password]
smtp.send_message[msg]
0. Nếu bạn định gửi nhiều email hàng ngày, bạn nên xem xét các nhà cung cấp dịch vụ email giao dịch như. AWS SES, SendGrid, MailGun, MailJet. Họ có một số kế hoạch miễn phí. Dịch vụ Gmail cho phép bạn gửi 500 email mỗi ngày. Bạn cần kiểm tra cái nào phù hợp với mìnhNếu bạn có bất kỳ câu hỏi nào hoặc cần trợ giúp, vui lòng đăng ký nhận bản tin bên dưới. Trong biểu mẫu, bạn có thể để lại phản hồi, nhận xét hoặc câu hỏi. Chúng tôi cố gắng hết sức để phản hồi nhanh chóng. ]