Tài liệu này giải thích cách tạo và gửi thư bằng API Gmail.
Có hai cách để gửi email bằng API Gmail:
- Bạn có thể gửi trực tiếp bằng phương thức
messages.send. - Bạn có thể gửi email từ bản nháp bằng phương thức
drafts.send. Để biết thêm thông tin về cách gửi thư nháp, hãy xem bài viết Gửi thư nháp.
Thư Gmail được gửi dưới dạng chuỗi được mã hoá theo base64URL trong trường raw của tài nguyên messages. Cách gửi nội dung email:
- Tạo nội dung email và mã hoá nội dung đó dưới dạng chuỗi base64URL.
- Tạo một tài nguyên thông báo mới và đặt thuộc tính
rawcủa tài nguyên đó thành chuỗi base64URL mà bạn vừa tạo. - Gọi phương thức
messages.sendhoặc nếu gửi bản nháp, hãy gọi phương thứcdrafts.sendđể gửi thông báo.
Thông tin chi tiết về quy trình này có thể khác nhau tuỳ thuộc vào lựa chọn thư viện ứng dụng và ngôn ngữ lập trình của bạn.
Tạo thông báo
Gmail API yêu cầu thư email MIME tuân thủ RFC 2822 và được mã hoá dưới dạng chuỗi base64URL. Nhiều ngôn ngữ lập trình có các thư viện hoặc tiện ích giúp đơn giản hoá quy trình tạo và mã hoá thông báo MIME.
Các mã mẫu sau đây cho biết cách tạo thông báo MIME bằng thư viện ứng dụng Google API cho nhiều ngôn ngữ:
Java
Bạn có thể đơn giản hoá việc tạo nội dung email bằng lớp MimeMessage trong gói javax.mail.internet. Mẫu mã sau đây cho biết cách tạo nội dung email, bao gồm cả tiêu đề:
Tiếp theo, mã hoá MimeMessage, tạo thực thể một đối tượng messages và đặt chuỗi thông báo được mã hoá base64URL làm giá trị của thuộc tính raw.
Python
Đoạn mã mẫu sau đây cho biết cách tạo một thông báo MIME, mã hoá thông báo đó thành một chuỗi base64URL và chỉ định thông báo đó cho trường raw của tài nguyên messages:
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
Thay thế nội dung sau:
ACCESS_TOKEN: mã truy cập cấp quyền truy cập vào API.MESSAGE: thông báo MIME được định dạng theo RFC 2822, được mã hoá dưới dạng base64URL.
Tạo tin nhắn có tệp đính kèm
Việc tạo thư có tệp đính kèm cũng giống như tạo bất kỳ thư nào khác, nhưng quy trình tải tệp lên dưới dạng thư MIME nhiều phần sẽ phụ thuộc vào ngôn ngữ lập trình.
Các mã mẫu sau đây cho thấy những cách có thể để tạo một thông báo MIME nhiều phần có tệp đính kèm:
Java
Đoạn mã mẫu sau đây cho biết cách tạo một thông báo MIME gồm nhiều phần. Các bước mã hoá và chỉ định giống như tạo thông báo.
Python
Tương tự như ví dụ tạo thông báo, ví dụ này cũng xử lý việc mã hoá thông báo thành base64URL và chỉ định thông báo đó cho trường raw của tài nguyên messages.
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
Thay thế nội dung sau:
ACCESS_TOKEN: mã truy cập cấp quyền truy cập vào API.MESSAGE: thông báo MIME có định dạng RFC 2822 chứa tệp đính kèm, được mã hoá dưới dạng base64URL.
Gửi tin nhắn
Sau khi tạo một thông báo, bạn có thể gửi thông báo đó bằng cách cung cấp thông báo trong nội dung yêu cầu của phương thức messages.send, như trong các ví dụ sau:
Java
Python
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/messages/send' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"raw":"MESSAGE"}'
Thay thế nội dung sau:
ACCESS_TOKEN: mã truy cập cấp quyền truy cập vào API.MESSAGE: thông báo MIME được định dạng theo RFC 2822, được mã hoá dưới dạng base64URL.
Nếu bạn đang cố gắng gửi thư trả lời và muốn email được nhóm vào một chuỗi, hãy đảm bảo rằng:
- Tiêu đề
Subjecttrùng khớp - Tiêu đề
ReferencesvàIn-Reply-Totuân theo tiêu chuẩn RFC 2822.