Python gửi email Gmail OAuth2

Sử dụng API Gmail có thể là một điều khó khăn. Trái ngược với Google Sheets, Google Cloud Storage, Google Cloud Vision, tài khoản Gmail thuộc về ai đó

Bot của chúng tôi phải hành động thay mặt cho người này và do đó, nên được xác thực là người này

Có… chúng tôi cần OAuth2

Bài viết này được chia như sau

1. Xác thực Google API với OAuth 2

  • Tạo Client ID và Client Secret [5 phút]
  • Tạo Google Cloud Function để nhận mã [5 phút]
  • Nhận mã [3 phút]
  • Nhận mã thông báo truy cập và làm mới mã thông báo [4 phút]

2. Ping API Gmail bằng Python

  • Xác thực bằng mã thông báo mới của chúng tôi
  • Liệt kê email
  • Liệt kê các email có chủ đề cụ thể
  • Đọc một email cụ thể
  • gửi email
  • Xóa một email
  • Tạo nhãn
  • Phân loại thư bằng nhãn

Xác thực Google API với OAuth 2

Chúng tôi có hai cách để xác thực

  • Sử dụng các gói python và google [xem Quickstart]
  • Sử dụng API trực tiếp

Các gói Python của Google đang thực hiện kiểm tra cơ bản và tạo và URL cho chúng tôi

Trong hướng dẫn này, tôi sẽ xây dựng URL xác thực theo cách thủ công để những người không chuyên về Python có thể hiểu được

Tạo Client ID và Client Secret [5 phút]

Trước tiên chúng tôi cần xác thực ứng dụng của mình

Làm như vậy

  • Truy cập bảng điều khiển Google Cloud Project APIs của bạn
  • Nhấp vào tab Thông tin xác thực
  • Nhấp vào “Tạo thông tin xác thực” và chọn “ID khách hàng OAuth”
  • Chọn Loại ứng dụng là Ứng dụng web [ngay cả khi không phải]
  • Chọn một cái tên hài hước và sến
  • Cuộn xuống phần “URI chuyển hướng”

Nếu bạn đang tạo một ứng dụng web, thì đó là nơi bạn nhập URI ứng dụng của mình để xử lý mã. Sau đó, bạn sẽ được nhắc với Client ID và Secret Client

Nếu bạn muốn tạo một ứng dụng từ máy chủ đến máy chủ, bạn cần tạo một URI chuyển hướng sẽ xử lý mã

Đó là những gì chúng tôi làm trong phần tiếp theo [mở một tab mới để bạn không bị mất WIP này] =>

Tạo chức năng Google Cloud gọi lại [5 phút]

Đó là phần nhàm chán nhất. Nếu bạn đã quen với Google Cloud Function, thì đó là bước hai phút

  • Truy cập bảng điều khiển Chức năng đám mây của Google
  • Nhấp vào "Tạo chức năng", gọi nó là gmail_callback
  • Giữ nguyên mọi thứ, nhấp vào “Save” và “Next”
  • Giữ mã điền sẵn “Xin chào thế giới”
  • Nhấp vào “Triển khai”

Sau khi triển khai, nhấp vào chức năng và chuyển đến tab Kích hoạt

Sao chép URL kích hoạt

Bạn có nhớ “URI chuyển hướng” của phần trước không?

Để ủy quyền cho chức năng đám mây này, bạn cần dán URL này vào “URI chuyển hướng được ủy quyền” của phần trước và nhấp vào “Tạo”

Một cửa sổ bật lên với Client ID và Client Secret của bạn, hãy lưu chúng ở đâu đó cho phần tiếp theo

Nhận mã yêu cầu quyền [3 phút]

Phần trước là bắt buộc để nhận mã. Hãy hỏi mã này

Để nhận mã cho chức năng Google Cloud được ủy quyền của chúng tôi, chúng tôi phải tạo một URL

điểm cuối

[GET] //accounts.google.com/o/oauth2/auth

Thông số

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline

Chỉ cần thay đổi

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
4

URL cuối cùng trông như thế này

//accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify&access_type=offline

Trong bất kỳ thanh tìm kiếm nào, hãy dán URL đã tạo này, bạn sẽ đến đây

Khi bạn cấp quyền truy cập, bạn sẽ được chuyển hướng đến Google Cloud Function mà chúng tôi đã tạo

URL chuyển hướng khiến chúng tôi quan tâm nhất [chứ không phải phản hồi]

Xem phím "mã"?

URL chuyển hướng của tôi là như thế này

//us-central1-project.cloudfunctions.net/gmail_callback?code=4/0AX4XfWinb4UhzrL87RO7IAjwm2XUha&scope=//www.googleapis.com/auth/gmail.readonly%20//www.googleapis.com/auth/gmail.modify

Xem khóa

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
5?

Nhận mã thông báo truy cập và làm mới mã thông báo [4 phút]

Sắp xong

Chúng tôi hiện có. bí mật ứng dụng khách, ID ứng dụng khách và mã ⇒ chúng tôi có thể nhận mã thông báo truy cập và làm mới

điểm cuối

[POST] //www.googleapis.com/oauth2/v4/token

Thông số

code=PREVIOUS_SECTION_CODE
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET
grant_type=authorization_code
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE

Giữ lại

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
6 và thay đổi mã, client_id, client_secret và redirect_uri bằng các giá trị của riêng bạn

URL cuối cùng trông như thế này

//www.googleapis.com/oauth2/v4/token?code=PREVIOUS_SECTION_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE

Sử dụng bất kỳ ứng dụng khách còn lại nào để gọi điểm cuối này. tôi sử dụng người đưa thư

tiếng hoan hô

Sau khi chúng tôi nhận được mã thông báo truy cập và mã thông báo làm mới, chúng tôi sẵn sàng bắt đầu

Chỉ cần lưu ý rằng bạn sẽ nhận được mã thông báo truy cập cùng với mã thông báo làm mới chỉ trong lần ủy quyền đầu tiên, vì vậy hãy đảm bảo lưu mã thông báo làm mới đó vào lần đầu tiên và bạn sẽ có thể sử dụng mã này bất kỳ lúc nào

API Gmail Ping

Xác thực bằng mã thông báo mới của chúng tôi

Bạn có hai cách để sử dụng mã thông báo của mình

  • Nhập mã thông báo dưới dạng tệp
  • Nhập Mã thông báo dưới dạng biến [ví dụ: được lưu trữ trong Google Secret Manager]

Mã thông báo dưới dạng tệp

Tạo một tệp

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
7 và sao chép-dán phản hồi mà chúng tôi đã nhận được trong phần trước

Đối với tệp JSON này, hãy thêm hai khóa.

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
8 và
response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
9, giá trị sẽ là giá trị từ phần trước

Các tập tin cuối cùng trông như thế này

Mã thông báo dưới dạng biến

Chuyển đến sổ ghi chép của bạn và tạo một biến

//accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify&access_type=offline
0

Dán phản hồi chúng tôi đã nhận được trong phần trước

Để biến này, thêm hai khóa.

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
8 và
response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
9, giá trị sẽ là giá trị từ phần trước

Máy tính xách tay của chúng tôi bắt đầu theo cách này

Không có gì khó ở đây. nhập, khai báo mã thông báo và xác thực đối với API Gmail

Bây giờ chúng tôi đã sẵn sàng để sử dụng API. Xin chúc mừng nếu bạn đã làm được đến thời điểm này

Đừng quên vỗ tay 50 lần. ]

Liệt kê email

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
6

Liệt kê các email có chủ đề cụ thể

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
7

Nhận một email cụ thể

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
8

gửi email

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
0

Xóa một email

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
1

Tạo nhãn

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
2

Phân loại thư bằng nhãn

response_type=code
client_id=YOUR_CLIENT_ID
redirect_uri=THE_CLOUD_FUNCTION_URL_MADE_JUST_BEFORE
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify
access_type=offline
3

Cuối cùng nhưng không kém phần quan trọng, khi phát trực tiếp, hãy lưu trữ mã thông báo của bạn ở một nơi an toàn. Tôi đánh giá cao Secret Manager cho loại dữ liệu nhạy cảm đó

Triển khai gốc Trình quản lý bí mật của Google trong Chức năng đám mây

Bạn có nên sử dụng triển khai hoàn toàn mới không? . Khả năng sử dụng, bảo mật, hiệu suất…

beranger. trung bình. com

Nếu bạn quan tâm đến Google API, bạn có thể xem bài viết này về Google Sheets API và Google Drive API. Lần này, chúng tôi đang sử dụng tài khoản dịch vụ

Làm chủ API Google Trang tính bằng Python

Tạo, viết, cập nhật, cập nhật quyền, di chuyển đến thư mục với Google Sheets API và Google Drive API [và một tách…

con trăn. tiếng Anh đơn giản. io

Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Tham gia cộng đồng của chúng tôi

Làm cách nào để gửi email bằng Gmail API trong Python?

Đang gửi email .
# nhập mô-đun os và pickle vào chương trình
nhập hệ điều hành
dưa chua nhập khẩu
# Tạo tiện ích cho API Gmail
từ googleapiclient. xây dựng nhập khám phá
từ google_auth_oauthlib. nhập luồng InstalledAppFlow
từ Google. xác thực. chuyên chở. yêu cầu nhập Yêu cầu

Tôi có thể sử dụng Gmail API để gửi email không?

Có hai cách để gửi email bằng Gmail API. Bạn có thể gửi trực tiếp bằng tin nhắn. phương thức gửi . Bạn có thể gửi nó từ bản nháp, sử dụng bản nháp.

Làm cách nào để tự động hóa Gmail bằng Python?

Mục lục .
Bật xác minh 2 bước
Gửi Email bằng Python. - Nhập thư viện và đặt người gửi và người nhận email. - Đặt chủ đề và nội dung của email. - Thêm SSL. - Đăng nhập và gửi email
Lên lịch cho Python Script chạy hàng tháng, hàng tuần hoặc hàng ngày

Làm cách nào để gửi email bằng API trong Python?

Khởi động nhanh API email cho Python .
Đăng ký tài khoản SendGrid
Bật xác thực hai yếu tố
Tạo và lưu trữ Khóa API SendGrid bằng Gửi thư > Quyền truy cập đầy đủ
Hoàn thành xác thực tên miền
Cài đặt Python

Chủ Đề