Gmail API-trăn

Một phần quan trọng của lập trình là khả năng giao tiếp với các Giao diện lập trình ứng dụng [API] khác nhau. Nếu bạn truy cập Google API Explorer, bạn sẽ tìm thấy một thư viện API khổng lồ, bao gồm tất cả các ứng dụng nổi tiếng của họ như Gmail, Drive và Lịch. Nói một cách đơn giản, một API cho phép bạn tìm nạp hoặc gửi dữ liệu đến các dịch vụ thông qua các yêu cầu HTTP

Việc sử dụng và tài liệu về các API này lúc đầu có thể hơi rắc rối, nhưng khi bạn học nó, bạn sẽ có thể áp dụng kiến ​​thức của mình vào hầu hết các ứng dụng của Google

Tôi quyết định viết hướng dẫn cho người mới bắt đầu về cách sử dụng và hiểu API Gmail. Hướng dẫn này dựa trên tài liệu, nghĩa là bạn sẽ tìm hiểu những gì cần tìm và cách đọc nó thay vì chỉ sao chép mã. Vì hầu hết các tài liệu tham khảo Google API khác đều giống nhau, bạn sẽ thấy rằng việc thích ứng với chúng sẽ dễ dàng hơn nhiều khi bạn biết cách đọc tài liệu thực sự. Điều này sẽ cho phép bạn viết mã của riêng mình và thực sự hiểu những gì bạn đang làm

Python 3 được sử dụng trong hướng dẫn này, nhưng cách sử dụng cũng sẽ khá giống với các ngôn ngữ khác

Bắt đầu nhanh

Google thường cung cấp hướng dẫn bắt đầu nhanh để giúp ủy quyền dễ dàng hơn. Hướng dẫn này sẽ sử dụng ủy quyền từ hướng dẫn bắt đầu nhanh, có nghĩa là nó sẽ có một số hạn chế, nhưng nó đủ cho mục đích của chúng tôi. Một cách khác để lấy khóa API là tạo một dự án mới, cách này phức tạp hơn một chút

Hướng dẫn bắt đầu nhanh Python có thể được truy cập tại liên kết này, nhưng tôi sẽ làm theo và chỉ cho bạn cách mọi thứ được thực hiện tại đây

Đây là giao diện bắt đầu nhanh

Bật API Gmail

Bước đầu tiên là bật API và tải xuống thông tin đăng nhập để sử dụng trong dự án của chúng tôi. Bằng cách nhấn nút “kích hoạt API Gmail”, chúng tôi sẽ mở một cửa sổ mới với thông tin đăng nhập của mình

ID khách hàng và Bí mật khách hàng của chúng tôi sẽ được hiển thị. Chọn cấu hình máy khách để tải xuống. Một tệp sẽ được lưu, có tên là credentials.json. Chúng tôi sẽ lưu cái này vào cùng một thư mục mà mã của chúng tôi sẽ ở trong

Cài đặt thư viện

Việc cài đặt các thư viện cần thiết được thực hiện bằng lệnh pip đơn giản do Google cung cấp. Tôi dán nó dưới đây là tốt. Tôi khuyên bạn nên làm điều đó trong một môi trường ảo. Tuy nhiên, điều đó không được đề cập trong hướng dẫn này

pip install — upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Lần chạy đầu tiên — Cho phép truy cập

Trước khi chúng tôi tiếp tục làm theo hướng dẫn, chúng tôi cần cấp quyền truy cập vào API Gmail cho tập lệnh của mình. Hãy bắt đầu bằng cách tạo kịch bản thực tế

Tạo một. py trong thư mục dự án [giống như thư mục với credentials.json]. Vì lợi ích của nó, hãy gọi nó là gmail.py

Sao chép mã ví dụ từ khởi động nhanh Python vào tệp gmail.py. Bây giờ hãy bỏ qua mã, chúng ta sẽ đi sâu vào vấn đề đó sau. Chúng tôi chỉ cần cho phép truy cập trong lần chạy đầu tiên — nó cũng sẽ được lưu cho tất cả các lần chạy sau

Chỉ cần chạy tệp như bình thường và bạn sẽ có thể đăng nhập vào tài khoản Google của mình trong trình duyệt web

python gmail.py

đăng nhập vào tài khoản của bạn. Một cảnh báo nói rằng ứng dụng chưa được xác minh sẽ được hiển thị. Vì chúng tôi đang sử dụng phương pháp bắt đầu nhanh nên ứng dụng của chúng tôi chưa được xác minh. Chỉ cần nhấp vào liên kết hiển thị trên hình ảnh để tiếp tục ngay bây giờ và cho phép truy cập

Hiểu Mã

Mã ví dụ thoạt nhìn có vẻ choáng ngợp, nhưng tôi sẽ chia nó thành các phần nhỏ hơn để giữ cho nó đơn giản. Cuối cùng, bạn sẽ thấy rằng nó thực sự không khó

Nhập khẩu và phạm vi

Như với bất kỳ tập lệnh Python nào khác, chúng tôi sẽ bắt đầu với việc nhập. Hầu hết các lần nhập được sử dụng để ủy quyền với tệp credentials.json. Tất cả những thứ này được cung cấp theo mặc định nên chúng ta không cần thay đổi gì cả

Tuy nhiên, phạm vi là phần quan trọng nhất. Biến này sẽ được sửa đổi sau, nhưng hiện tại, chúng tôi sẽ giải quyết phạm vi mặc định được cung cấp

Điều này nói lên rằng nó sẽ cho phép chúng tôi truy cập dữ liệu từ phạm vi gmail.readonly. Có nhiều phạm vi hơn và điều này cho phép một tập hợp các hành động và yêu cầu mà chúng tôi có thể thực hiện đối với API Gmail. Một số yêu cầu khác yêu cầu phạm vi khác

Sau này, chúng tôi sẽ thêm một phạm vi khác để sử dụng các chức năng khác

thông tin đăng nhập

Ủy quyền có lẽ là phần nâng cao nhất của tập lệnh. Hiện tại, chúng tôi sẽ không đi sâu vào vấn đề đó vì nó đã được định cấu hình để hoạt động ngay từ hộp

Đây là phần lấy thông tin đăng nhập mà bạn đã tải xuống từ ________ 56 _______. Đầu tiên, nó tìm tệp

python gmail.py
1. Đó là tệp được tạo sau khi bạn cho phép truy cập vào tài khoản của mình lần đầu tiên. Nếu tệp đã tồn tại, nó sẽ lấy thông tin xác thực từ tệp đó, nghĩa là bạn không phải cho phép truy cập nhiều lần

Nếu tệp

python gmail.py
1 không tồn tại, nó sẽ tải thông tin đăng nhập từ tệp credentials.json của bạn để thay thế. Điều này yêu cầu bạn cho phép truy cập qua trình duyệt web mà bạn đã làm trước đây

Trong cả hai trường hợp, thông tin đăng nhập đều được lưu trong biến

python gmail.py
4 để sử dụng sau này

API

Đây là phần thú vị của kịch bản. Phần tìm nạp dữ liệu từ Gmail API. Như bạn có thể thấy, nó thực sự không quá cao cấp. Đây là phần mà chúng ta sẽ tìm hiểu sâu hơn

python gmail.py
5 được xây dựng bằng cách sử dụng hàm
python gmail.py
6 đã nhập trước đó. Thông tin đăng nhập mà chúng tôi nhận được trước đó được chuyển thành đối số cho nó

Sau đó,

python gmail.py
5 được sử dụng để tìm nạp tất cả các nhãn Gmail cho tài khoản đã được ủy quyền. Dữ liệu được lưu vào biến
python gmail.py
8

Dòng cuối cùng lưu tất cả các nhãn vào biến

python gmail.py
9. Chúng được định dạng dưới dạng danh sách, do đó giá trị mặc định [
//www.googleapis.com/gmail/v1/users/userId/labels
0 ] được chỉ định nếu danh sách trống

Phần tiếp theo của hướng dẫn này sẽ xem xét tài liệu để hiểu ý nghĩa của điều này

Kết quả

Cuối cùng, tên nhãn được in [nếu có]

Hiểu tài liệu

Vì vậy, đó là mã ví dụ khởi động nhanh. Tuy nhiên, nó không có nhiều ý nghĩa nếu không đọc tài liệu. Phần này sẽ chỉ cho bạn cách thực sự hiểu những gì được viết trong mã và cách bạn sẽ sử dụng tài liệu để viết mã của riêng mình

Trước tiên, hãy chuyển đến tab “Tham khảo” để truy cập tài liệu

Ở bên trái, một menu tóm tắt lớn được hiển thị. Nó có rất nhiều thông tin, nhưng nó sẽ cực kỳ hữu ích trong bước sắp tới

Khi chúng ta làm việc với nhãn, hãy chọn phần

//www.googleapis.com/gmail/v1/users/userId/labels
1 và phần
//www.googleapis.com/gmail/v1/users/userId/labels
2 để biết một số thông tin cơ bản về nhãn

Chúng tôi được chào đón bởi màn hình này

Một văn bản nói rằng danh sách các phương pháp đó nằm ở cuối trang, cũng như các biểu diễn tài nguyên của nhãn. Thông tin thường được gửi dưới dạng JSON, được xử lý giống như từ điển trong Python

Đây là thông tin mà mỗi nhãn chúng tôi tìm nạp nắm giữ. Nếu kéo xuống sâu hơn, chúng ta sẽ thấy một bảng cung cấp thông tin về từng thuộc tính trong từ điển

Tôi đã đánh dấu phần tên vì chúng tôi đã sử dụng nó trước đây. Chúng tôi đã truy cập vào

//www.googleapis.com/gmail/v1/users/userId/labels
3 của nhãn khi chúng tôi in nhãn trước đó. Như thế này

Trong trường hợp này,

//www.googleapis.com/gmail/v1/users/userId/labels
4 là một từ điển và chúng tôi truy cập thuộc tính
//www.googleapis.com/gmail/v1/users/userId/labels
3 bên trong nó. Chúng tôi có thể truy cập bất kỳ tài sản nào khác có tên ở trên, nhưng hiện tại,
//www.googleapis.com/gmail/v1/users/userId/labels
3 vẫn ổn

Điều quan trọng cần lưu ý là

//www.googleapis.com/gmail/v1/users/userId/labels
3 là một chuỗi, nhưng một số giá trị có thể là số nguyên. Dễ dàng tìm thấy trong tài liệu

Nếu chúng ta tiếp tục cuộn xuống cuối trang, chúng ta sẽ thấy tất cả các phương pháp. Một mô tả ngắn về từng phương pháp được trình bày, cũng như một siêu liên kết đến tài liệu

Bạn sẽ sử dụng các phương pháp khác nhau tùy thuộc vào những gì bạn muốn làm. Ví dụ khởi động nhanh sử dụng phương pháp

//www.googleapis.com/gmail/v1/users/userId/labels
8 để tìm nạp tất cả các nhãn trên tài khoản Gmail. Nếu chúng tôi muốn tạo một nhãn mới, chúng tôi sẽ sử dụng phương pháp
//www.googleapis.com/gmail/v1/users/userId/labels
9, mà chúng tôi sẽ thực hiện sau

Nếu chúng ta quay lại đầu trang và nhìn vào phần tổng quan ở bên trái, bạn sẽ thấy rằng mỗi phương thức đều có nút menu riêng

Phương pháp liệt kê

Hãy xem xét kỹ hơn phương pháp danh sách mà chúng ta đã sử dụng trước đây bằng cách nhấp vào

//www.googleapis.com/gmail/v1/users/userId/labels
8 trên thanh menu

Điều này cung cấp rất nhiều thông tin hữu ích. Đối với người mới bắt đầu, một yêu cầu HTTP GET được gửi tới URL nhãn để tìm nạp tất cả các nhãn

//www.googleapis.com/gmail/v1/users/userId/labels

Chúng ta có thể thực hiện việc này theo cách thủ công bằng cách sử dụng thư viện

list_of_labels = response["labels"]
1 trong Python chẳng hạn. Tuy nhiên, chúng tôi sẽ sử dụng thư viện Google cung cấp trong hướng dẫn này

Cần có sự cho phép, nhưng chúng tôi đã xử lý phần đó trước đó

Và cuối cùng, nhưng không kém phần quan trọng, các tham số mà chúng ta có thể truyền cho phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
8. Như bạn có thể thấy,
list_of_labels = response["labels"]
3 là người duy nhất chúng ta có thể vượt qua

list_of_labels = response["labels"]
3 là một chuỗi đại diện cho địa chỉ email của người dùng. Thay vào đó, giá trị
list_of_labels = response["labels"]
5 có thể được sử dụng để chỉ ra người dùng được xác thực. Chúng tôi thực sự đã sử dụng giá trị
list_of_labels = response["labels"]
5 trong mã ví dụ

Chúng ta sẽ sớm đi sâu hơn vào vấn đề này, nhưng trước tiên, chúng ta sẽ đọc qua các phần khác của tài liệu về phương pháp

//www.googleapis.com/gmail/v1/users/userId/labels
8

Ủy quyền và phạm vi

Phạm vi nghe có vẻ quen thuộc, đó là bởi vì chúng tôi đã đề cập sơ qua về nó trước đó. Để truy cập phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
8, cần có ít nhất một trong các phạm vi được cung cấp

Như bạn có thể thấy, chúng tôi đã thêm phạm vi gmail.readonly ở đầu mã của chúng tôi

Phản ứng

Phần cuối cùng cho chúng ta thấy một yêu cầu thành công sẽ trả về những gì. một nội dung ở định dạng JSON. Tất cả các nhãn được lưu trữ dưới dạng danh sách có thể được truy cập bằng phím

python gmail.py
9. Về cơ bản điều này

list_of_labels = response["labels"]

Chính xác như bạn sẽ sử dụng một từ điển thông thường trong Python

Yêu cầu lập danh sách

Bây giờ, hãy nhìn lại phần API trong mã của chúng tôi vì chúng tôi đã thu thập thêm một số thông tin từ tài liệu

Đầu tiên,

python gmail.py
5 được xây dựng bằng thông tin đăng nhập của chúng tôi. Đây chỉ đơn giản là cơ sở được sử dụng để thực hiện các yêu cầu [sử dụng các phương thức mà chúng ta đã thấy trước đây]

Tiếp theo, chúng tôi thực sự thực hiện yêu cầu bằng cách sử dụng phương thức danh sách với mã này. Bây giờ nó có thể trông quen thuộc hơn một chút khi chúng tôi đã xem qua các tài liệu

Để dễ dàng chỉ cho bạn cách xây dựng cú pháp, tôi đã mã hóa mã màu cùng với menu để cho bạn thấy API hoạt động như thế nào

Chúng tôi bắt đầu với biến

python gmail.py
5. Chỉ cần làm theo cấu trúc giống như cây, từng phương pháp một, cuối cùng chúng ta sẽ có được phương pháp danh sách

Thực sự chúng ta hãy xem xét kỹ hơn phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
8, và đặc biệt là tham số quen thuộc
list_of_labels = response["labels"]
3 đã truyền ___22_______5 dưới dạng đối số

Nếu cuộn ngược lên trên cùng của tài liệu phương pháp

//www.googleapis.com/gmail/v1/users/userId/labels
8, chúng ta sẽ thấy bản tóm tắt các tham số mà chúng ta đã đề cập trước đó. Tham số
list_of_labels = response["labels"]
3 được chỉ định, trong trường hợp chúng tôi không biết nó là gì

Chúng tôi chỉ cần chuyển nó làm đối số cho phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
8 trong mã

Như bạn có thể nhớ lại, yêu cầu sẽ trả về một từ điển, theo phần phản hồi của tài liệu. Chúng tôi lưu trữ nó trong biến

python gmail.py
8

Để truy cập các nhãn, chúng tôi sử dụng phương pháp credentials.json0 của từ điển. Đối số đầu tiên mà chúng ta chuyển vào là tên của những gì chúng ta muốn lấy [

python gmail.py
9 ] và đối số thứ hai là những gì chúng ta nhận được nếu nó không tìm thấy bất kỳ thứ gì có tên đó

Nếu không có khóa tên là

python gmail.py
9, một danh sách trống sẽ được trả về

Về cơ bản, đó là cách tài liệu được đọc và cách thức hoạt động của phương pháp

//www.googleapis.com/gmail/v1/users/userId/labels
8. Thay vào đó, hãy thử làm điều gì đó khác từ đầu bằng cách làm theo tài liệu API

Tạo nhãn mới

Hãy sử dụng kiến ​​thức mới tìm được của chúng ta và làm điều gì đó mới mẻ, điều gì đó từ đầu [gần như]

Xóa tất cả mã liên quan đến API khỏi tài liệu của bạn. Chỉ giữ lại các lần nhập, phạm vi và xử lý thông tin xác thực. Chúng tôi sẽ cố gắng tạo nhãn mới thông qua API

Hãy đến trang Tổng quan của các nhãn. Cuộn xuống các phương thức để xem chúng ta cần sử dụng phương thức nào để tạo phương thức của riêng mình

Bạn có thể nhận thấy rằng có một phương pháp được gọi theo nghĩa đen là

//www.googleapis.com/gmail/v1/users/userId/labels
9 mà chúng ta sẽ sử dụng. Đi đến tài liệu của phương pháp đó để xem những gì chúng ta cần

Hãy bắt đầu với ủy quyền và phạm vi

Như bạn có thể thấy, chúng tôi yêu cầu ít nhất một trong ba phạm vi hiện có. Tuy nhiên, chúng tôi không có bất kỳ một trong số họ trong mã của chúng tôi. Hãy thêm phạm vi credentials.json5

Biến credentials.json6 lấy một danh sách, nghĩa là chúng ta có thể chỉ cần thêm phạm vi mới bằng cách phân tách bằng dấu phẩy

Vì ủy quyền cũ đã được lưu trữ trong tệp

python gmail.py
1 [và tệp đó được sử dụng để ủy quyền miễn là nó tồn tại], chúng tôi cần xóa nó và tạo lại nó với phạm vi mới của chúng tôi

Chạy lại ứng dụng Python với credentials.json8 để ủy quyền lại, tuy nhiên, có thể thấy một thay đổi nhỏ

Một phụ thuộc mới được thêm vào. Bạn có thể không hiểu nó vì ngôn ngữ Thụy Điển, nhưng về cơ bản nó nói “Xử lý nhãn. ” Vì vậy, phạm vi mới đã thêm một phụ thuộc mới vào ứng dụng của chúng tôi

Mật mã

Nếu chúng ta nhìn vào phần đầu của tài liệu phương pháp

//www.googleapis.com/gmail/v1/users/userId/labels
9, chúng ta có thể thấy rằng nó khá giống với phương pháp
//www.googleapis.com/gmail/v1/users/userId/labels
8. Nó yêu cầu ủy quyền, nó tạo một yêu cầu HTTP POST và cần có tham số
list_of_labels = response["labels"]
3

Nhưng bằng cách nào đó, chúng tôi cần chuyển nhãn thực tế trong yêu cầu của mình. Nếu chúng tôi cuộn xuống phần thân yêu cầu, chúng tôi sẽ xem cách thực hiện điều đó

Trong phần nội dung yêu cầu của chúng tôi, phải có một nhãn có ít nhất các thuộc tính sau để tạo nhãn

  • nhãnListVisibility
  • tin nhắnListVisibility
  • Tên

Bạn có thể tìm hiểu xem chúng nên thuộc loại nào, cũng như chúng là gì, trong tài liệu

Chính xác như chúng tôi đã nhận dữ liệu trong từ điển, dữ liệu sẽ được gửi dưới dạng từ điển

Tạo nhãn

Đây là một chức năng đơn giản để tạo nhãn. Nó yêu cầu một tên và hai đối số tùy chọn khác. Nếu chúng không được chỉ định, thì gmail.py2 và gmail.py3 sẽ được sử dụng làm mặc định

Nhãn được tạo dưới dạng từ điển, sau đó được trả lại

Để tạo nhãn có tên gmail.py4, chúng tôi sẽ sử dụng cú pháp trên

Gửi yêu cầu tới API

Đã đến lúc thực hiện yêu cầu thực sự tới API và chuyển nhãn của chúng tôi tới tài khoản Gmail của chúng tôi. Hãy làm theo quy trình tương tự như lần trước

Tôi đã đánh mã màu đường dẫn đến phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
9

Chúng tôi không thay đổi nhiều so với lệnh gọi API cuối cùng của chúng tôi. Chúng tôi bắt đầu với

python gmail.py
5 mà chúng tôi đã tạo trước đó và thêm từng phương thức cho đến khi chúng tôi đạt được phương thức
//www.googleapis.com/gmail/v1/users/userId/labels
9. Tuy nhiên, chúng tôi chưa hoàn thành ở đó

Nếu chúng tôi cuộn đến phần Tham số của tài liệu, chúng tôi sẽ thấy rằng chúng tôi cần chuyển

list_of_labels = response["labels"]
3 làm tham số, như cuộc gọi cuối cùng của chúng tôi

Hãy sử dụng lại

list_of_labels = response["labels"]
5, giống như tài liệu gợi ý

Chúng tôi vẫn còn thiếu một cái gì đó. nhãn thực tế. Bằng cách nào đó, chúng tôi cũng cần chuyển nhãn trong yêu cầu của mình. Hãy cuộn xuống phần thân yêu cầu một lần nữa

Chúng tôi đã tạo nhãn với tất cả các thuộc tính bắt buộc, vì vậy chúng tôi cần chuyển nhãn đó vào phần thân yêu cầu. Điều này được thực hiện bằng cách thêm một tham số khác vào phương thức

//www.googleapis.com/gmail/v1/users/userId/labels
9 có tên là gmail.py1

Hãy chuyển đối tượng

//www.googleapis.com/gmail/v1/users/userId/labels
4 của chúng ta vào đó

Cuộc gọi thực tế đã hoàn tất, nhưng để thêm một số kiểm tra lỗi, hãy gói nó vào một câu lệnh try/except

Nếu xảy ra sự cố, thông báo lỗi sẽ được in trong bảng điều khiển của chúng tôi. Nếu mọi thứ diễn ra theo kế hoạch, gmail.py3 sẽ được in [và nhãn sẽ được tạo]

Vì vậy, hãy nhìn lại các phần mã mà chúng tôi đã tạo để thực hiện yêu cầu API mới

Việc xử lý API trên thực tế không quá khó. Quá trình tìm nạp thực tế không yêu cầu nhiều dòng mã — phần phức tạp là ủy quyền mà chúng tôi thậm chí không cần phải tự xử lý

Nếu chúng tôi lưu và chạy mã với credentials.json8, một nhãn mới sẽ được tạo trong tài khoản Gmail của chúng tôi

Xong

Chúng tôi đã thực hiện thành công lệnh gọi API tới Gmail từ đầu và tạo nhãn của riêng mình. Nguyên tắc cơ bản tương tự cũng áp dụng cho hầu hết các phương pháp khác trong API Gmail và các API Google khác

Vui lòng thử thực hiện các yêu cầu khác chỉ để hiểu rõ về nó. Cách tốt nhất để học là thực hành. Khi bạn bắt đầu hiểu tài liệu, việc tạo cuộc gọi của riêng bạn không khó lắm

Hãy thử tạo bản nháp thư của riêng bạn hoặc tìm nạp tất cả thư trong hộp thư đến của bạn dựa trên truy vấn — mọi thứ đều được chỉ định trong tài liệu

Tôi đã cung cấp mã đầy đủ trên GitHub nếu bạn muốn xem kết quả cuối cùng của ví dụ của chúng tôi. Chúc may mắn với các dự án của bạn và viết mã vui vẻ

Làm cách nào để sử dụng API Gmail với Python?

Cấp phép thông tin đăng nhập cho ứng dụng dành cho máy tính để bàn .
Trong bảng điều khiển Google Cloud, đi tới Trình đơn menu > API & Dịch vụ > Thông tin xác thực. .
Nhấp vào Tạo thông tin xác thực > ID ứng dụng khách OAuth
Nhấp vào Loại ứng dụng > Ứng dụng trên máy tính để bàn
Trong trường Tên, hãy nhập tên cho thông tin xác thực. .
Nhấp vào Tạo. .
Nhấp vào OK

Google Gmail API có miễn phí không?

API Gmail được cung cấp miễn phí nhưng có giới hạn sử dụng hàng ngày nhất định đối với lệnh gọi API. sử dụng hàng ngày. 1 tỷ lệnh gọi API mỗi ngày. Giới hạn tỷ lệ cho mỗi người dùng. 250 lệnh gọi API mỗi người dùng mỗi giây.

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

Có API cho Gmail không?

API Gmail là API RESTful có thể được sử dụng để truy cập hộp thư Gmail và gửi thư . Đối với hầu hết các ứng dụng web, API Gmail là lựa chọn tốt nhất để có quyền truy cập được phép vào dữ liệu Gmail của người dùng và phù hợp với nhiều ứng dụng khác nhau, chẳng hạn như. Trích xuất, lập chỉ mục và sao lưu thư chỉ đọc.

Chủ Đề