במאמר הזה מוסבר איך ליצור ולשלוח הודעות אימייל באמצעות Gmail API.
יש שתי דרכים לשלוח אימייל באמצעות Gmail API:
- אפשר לשלוח אותו ישירות באמצעות ה-method
messages.send. - אפשר לשלוח אותו מטיוטה באמצעות השיטה
drafts.send. מידע נוסף על שליחת טיוטה של הודעה זמין במאמר שליחת טיוטות.
הודעות Gmail נשלחות כמחרוזות מקודדות של base64URL בשדה raw של משאב messages. כדי לשלוח הודעת אימייל:
- יוצרים את תוכן האימייל ומקודדים אותו כמחרוזת base64URL.
- יוצרים משאב הודעה חדש ומגדירים את המאפיין
rawשלו למחרוזת base64URL שנוצרה זה עתה. - כדי לשלוח את ההודעה, מבצעים קריאה ל-method
messages.send, או אם שולחים טיוטה, מבצעים קריאה ל-methoddrafts.send.
פרטי תהליך העבודה הזה משתנים בהתאם לספריית הלקוח ולשפת התכנות שבחרתם.
יצירת הודעות
ממשק Gmail API דורש הודעות אימייל בפורמט MIME שתואמות ל-RFC 2822 ומקודדות כמחרוזות base64URL. בהרבה שפות תכנות יש ספריות או כלי עזר שמפשטים את התהליך של יצירה וקידוד של הודעות MIME.
דוגמאות הקוד הבאות מראות איך ליצור הודעת MIME באמצעות ספריות לקוח של Google API בשפות שונות:
Java
אפשר לפשט את יצירת הודעת האימייל באמצעות המחלקה MimeMessage בחבילה javax.mail.internet. בדוגמת הקוד הבאה אפשר לראות איך ליצור את הודעת האימייל, כולל הכותרות:
לאחר מכן מקודדים את MimeMessage, יוצרים מופע של אובייקט messages ומגדירים את מחרוזת ההודעה בקידוד base64URL כערך של המאפיין raw.
Python
בדוגמת הקוד הבאה אפשר לראות איך ליצור הודעת MIME, לקודד אותה למחרוזת base64URL ולהקצות אותה לשדה raw של משאב 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"}}'
מחליפים את מה שכתוב בשדות הבאים:
-
ACCESS_TOKEN: טוקן הגישה שמאפשר גישה ל-API. -
MESSAGE: הודעת MIME בפורמט RFC 2822, בקידוד base64URL.
יצירת הודעות עם קבצים מצורפים
יצירת הודעה עם קובץ מצורף דומה ליצירת כל הודעה אחרת, אבל תהליך העלאת הקובץ כהודעת MIME מרובת חלקים תלוי בשפת התכנות.
בדוגמאות הקוד הבאות אפשר לראות דרכים ליצירת הודעת MIME מרובת חלקים עם קובץ מצורף:
Java
בדוגמת הקוד הבאה אפשר לראות איך יוצרים הודעת MIME מרובת חלקים. השלבים של הקידוד וההקצאה זהים לאלה של יצירת הודעות.
Python
בדומה לדוגמה של יצירת הודעות, גם בדוגמה הזו ההודעה מקודדת ל-base64URL ומוקצית לשדה raw של משאב 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"}}'
מחליפים את מה שכתוב בשדות הבאים:
-
ACCESS_TOKEN: טוקן הגישה שמאפשר גישה ל-API. -
MESSAGE: הודעת MIME בפורמט RFC 2822 שמכילה קובץ מצורף, בקידוד base64URL.
שליחת הודעות
אחרי שיוצרים הודעה, אפשר לשלוח אותה על ידי הוספתה לגוף הבקשה של שיטת messages.send, כמו בדוגמאות הבאות:
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"}'
מחליפים את מה שכתוב בשדות הבאים:
-
ACCESS_TOKEN: טוקן הגישה שמאפשר גישה ל-API. -
MESSAGE: הודעת MIME בפורמט RFC 2822, בקידוד base64URL.
אם אתם מנסים לשלוח תשובה ורוצים שהאימייל יצורף לשרשור, ודאו ש:
- הכותרות
Subjectזהות - הכותרות
Referencesו-In-Reply-Toתואמות לתקן RFC 2822.