SendRawEmail 搭配 AWS SDK 或 CLI 使用 - AWS SDK 程式碼範例

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SendRawEmail 搭配 AWS SDK 或 CLI 使用

下列程式碼範例示範如何使用 SendRawEmail

CLI
AWS CLI

使用 Amazon SES 傳送電子郵件原始碼

下列範例使用 send-raw-email 命令來傳送包含 TXT 附件的電子郵件:

aws ses send-raw-email --raw-message file://message.json

輸出:

{ "MessageId": "EXAMPLEf3f73d99b-c63fb06f-d263-41f8-a0fb-d0dc67d56c07-000000" }

原始訊息是在目前目錄中以名為 message.json 的檔案儲存的 JSON 資料結構。其中包含下列各項:

{ "Data": "From: sender@example.com\nTo: recipient@example.com\nSubject: Test email sent using the AWS CLI (contains an attachment)\nMIME-Version: 1.0\nContent-type: Multipart/Mixed; boundary=\"NextPart\"\n\n--NextPart\nContent-Type: text/plain\n\nThis is the message body.\n\n--NextPart\nContent-Type: text/plain;\nContent-Disposition: attachment; filename=\"attachment.txt\"\n\nThis is the text in the attachment.\n\n--NextPart--" }

如您所見,「資料」是一個長字串,其中包含 MIME 格式的整個原始電子郵件內容,包括名為 attachment.txt 的附件。

將 sender@example.com 和 recipient@example.com 取代為您要使用的地址。請注意,必須透過 Amazon SES 驗證寄件者的電子郵件地址。在您取得 Amazon SES 生產存取權之前,除非收件者是 Amazon SES 信箱模擬器,否則您還必須驗證收件者的電子郵件地址。如需驗證詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

輸出中的訊息 ID 表示對 send-raw-email 的呼叫成功。

如果您沒有收到電子郵件,請檢查您的垃圾郵件匣。

如需傳送電子郵件原始碼的詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「使用 Amazon SES API 傳送電子郵件原始碼」。

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 SendRawEmail

JavaScript
SDK for JavaScript (v3)
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

使用 nodemailer 發送含附件的電子郵件。

import sesClientModule from "@aws-sdk/client-ses"; /** * nodemailer wraps the SES SDK and calls SendRawEmail. Use this for more advanced * functionality like adding attachments to your email. * * https://nodemailer.com/transports/ses/ */ import nodemailer from "nodemailer"; /** * @param {string} from An Amazon SES verified email address. * @param {*} to An Amazon SES verified email address. */ export const sendEmailWithAttachments = ( from = "from@example.com", to = "to@example.com", ) => { const ses = new sesClientModule.SESClient({}); const transporter = nodemailer.createTransport({ SES: { ses, aws: sesClientModule }, }); return new Promise((resolve, reject) => { transporter.sendMail( { from, to, subject: "Hello World", text: "Greetings from Amazon SES!", attachments: [{ content: "Hello World!", filename: "hello.txt" }], }, (err, info) => { if (err) { reject(err); } else { resolve(info); } }, ); }); };
  • 如需 API 詳細資訊,請參閱《AWS SDK for JavaScript API 參考》中的 SendRawEmail