- vừa được xem lúc

Kiểm tra và gửi Email trong Django bằng Gmail SMTP

0 0 1

Người đăng: Thái Thịnh

Theo Viblo Asia

Django cung cấp một framework đơn giản nhưng mạnh mẽ để xử lý email trong các ứng dụng của bạn. Trong bài viết này, chúng ta sẽ cùng đi qua các bước để gửi email bằng máy chủ SMTP của Gmail trong một dự án Django.

Hướng dẫn từng bước

1. Tạo một dự án Django

Bắt đầu bằng cách tạo một dự án Django mới có tên là gmail:

django-admin.py startproject gmail

Di chuyển vào thư mục dự án:

cd gmail

2. Cấu hình cài đặt email trong settings.py

Mở file settings.py và thêm cấu hình sau để sử dụng Gmail làm backend gửi email:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'youremail@gmail.com' # Replace with your Gmail address
EMAIL_HOST_PASSWORD = 'your_email_password' # Use an App Password if 2FA is enabled
EMAIL_PORT = 587

Lưu ý bảo mật: Không bao giờ đưa thông tin tài khoản email vào hệ thống quản lý phiên bản (version control). Hãy sử dụng biến môi trường hoặc gói decouple của Django để quản lý các thiết lập nhạy cảm một cách an toàn.

3. Khởi chạy Django Shell

Mở shell tương tác của Django để thử gửi email:

python manage.py shell

4. Gửi một Email

Trong shell, nhập các dòng sau để gửi email:

from django.core.mail import EmailMessage email = EmailMessage( subject='Subject', body='This is the body of the email.', to=['recipient@example.com'] # Replace with the recipient's email
) email.send()

Nếu shell trả về 1, điều đó có nghĩa là email đã được gửi thành công.

Các vấn đề thường gặp và cách khắc phục

Bật quyền truy cập Gmail

Nếu gặp lỗi xác thực, hãy đảm bảo rằng bạn đã:

  • Bật quyền truy cập "ứng dụng kém an toàn" (không khuyến khích dùng trong môi trường production)
  • HOẶC dùng Mật khẩu Ứng dụng (App Password) nếu tài khoản Gmail của bạn đã bật xác minh 2 bước (2FA).

Cách tạo mật khẩu ứng dụng (App Password)

  • Truy cập: https://myaccount.google.com/apppasswords
  • Tạo mật khẩu cho “Mail” và “Other (Tên tùy chỉnh)”
  • Sử dụng mật khẩu đã tạo ở trường EMAIL_HOST_PASSWORD trong settings.py

Kết luận

Sử dụng máy chủ SMTP của Gmail với Django là một cách đơn giản và hiệu quả để gửi email trong quá trình phát triển hoặc gửi email giao dịch. Tuy nhiên, đối với môi trường production, bạn nên cân nhắc sử dụng các dịch vụ gửi email chuyên biệt như SendGrid, Mailgun hoặc Amazon SES để đảm bảo khả năng mở rộng và độ tin cậy cao hơn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Creating a Custom User Model in Django

Làm thế nào để thay thế username với email trong Django authentication. Cần chú ý rằng các làm này sẽ làm thay đổi rất nhiều đến schema của database vậy nên khuyến khích khi thực hiện một dự án mới.

0 0 35

- vừa được xem lúc

Câu chuyện kiểm soát truy cập trong Django.

Nếu bạn đang xây dựng một ứng dụng với Django, có thể bạn sẽ muốn kiểm soát quyền truy cập ứng với từng loại user. Những tính năng này sẽ phổ biến trên các trang web có quy mô lớn hơn một chút.

0 0 89

- vừa được xem lúc

Django: Handling CSV Data

Khi làm việc với các dự án Python hay Django thì phần xử lý CSV hầu như là không thể thiếu. Qua bài viết này, các bạn hãy cùng mình hiểu rõ hơn về CSV cũng như xử lý chúng ra sao nhé.

0 0 44

- vừa được xem lúc

Python Django - Xây dựng ứng dụng e-commerce (Part 1)

Giới thiệu Django - Khởi tạo project. Sơ qua về Django. . Django là một Framework lập trình web bậc cao được viết bằng ngôn ngữ lập trình Python.

0 0 963

- vừa được xem lúc

Deploy thủ công ứng dụng Django

Đối với một developer mà nói, mục đích cuối cùng của chúng ta khi phát triển một sản phẩm là có thể đưa sản phẩm ấy đến được với người dùng, và deploy là bước cuối cùng mà chúng ta cần thực hiện. Tron

0 0 282

- vừa được xem lúc

Dễ dàng có ngay ứng dụng e-commerce với Django (Part 2)

Xin chào tất cả mọi người. Tiếp nối bài viết trước về việc dùng Python Django để xây dựng 1 ứng dụng thương mại điện tử, sau đây mình xin phép được làm tiếp phần 2 để bổ sung thêm các chức năng, giúp

0 0 717