
2024年在線市場平臺的11大最佳支付解決方案
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Postmark-Server-Token: server token" \
-d '{
"From": "sender@example.com",
"To": "receiver@example.com",
"Subject": "Postmark test",
"TextBody": "Hello dear Postmark user.",
"HtmlBody": "<html><body><strong>Hello</strong> dear Postmark user.</body></html>",
"MessageStream": "outbound"
}'
為了向服務驗證您的身份,您需要使用 X-Postmark-Server-Token
標頭進行身份驗證和授權。每個 Postmark 服務器都有自己的 API 令牌,允許您隔離連接到 Postmark 的每個應用程序的訪問和數據。
標頭名稱和值不區分大小寫。如果您執行的請求包含錯誤或缺失的標頭,您將收到 HTTP 響應 401(未授權)。
為了測試目的,Postmark 允許您發送測試電子郵件,但這些電子郵件實際上不會發送給收件人。此方法通常用于驗證您的數據是否有效。您可以通過傳遞 POSTMARK_API_TEST
服務器 API 令牌來執行此操作。
X-Postmark-Server-Token: server token
JSON 消息在 HTTP POST 請求的正文中傳遞。?From
?和?To
?字段能夠接受名稱,格式為?John Doe <email@example.com>
。您可以提供?HtmlBody
?HTML 格式的消息、?TextBody
?純文本,或為多部分提供兩者。多部分發送帶有文本版本的 HTML,供不支持 HTML 的客戶端使用。傳遞標頭是可選的。
Name
通過 API 覆蓋發件人簽名中的 。如果您想在電子郵件中使用會員信息,同時保留您的 From
電子郵件地址,這將非常有用。只需將姓名傳遞到 From
字段 即可"From": "John Smith <sender@example.com>"
。這也適用于To
、Cc
和Bcc
字段。 To
您可以在、 Cc
和 字段中傳遞多個收件人地址 Bcc
。多個地址以逗號分隔,每封郵件最多可容納 50 個收件人。這意味著所有收件人(To
、 Cc
和 Bcc
)合計不得超過 50 個。Tag
屬性對發送的電子郵件進行分類。這樣您就可以獲得所有標記的電子郵件的詳細統計信息。每封郵件只能使用一個標簽。標簽的最大大小為 1000 個字符。Metadata
。"To" : "\"Joe Receiver, Jr.\" <receiver@example.com>"
"Headers": [{"Name":"Message-ID", "Value": "<my-id-123@example.com>"}]
{
"From": "sender@example.com",
"To": "receiver@example.com",
"Cc": "copied@example.com",
"Bcc": "blank-copied@example.com",
"Subject": "Test",
"Tag": "Invitation",
"HtmlBody": "<b>Hello</b>",
"TextBody": "Hello",
"ReplyTo": "reply@example.com",
"Metadata": {
"Color":"blue",
"Client-Id":"12345"
},
"Headers": [
{
"Name": "CUSTOM-HEADER",
"Value": "value"
}
],
"TrackOpens": true,
"TrackLinks": "HtmlOnly",
"MessageStream": "outbound"
}
您可以使用三種方式激活電子郵件的打開跟蹤:
{
...
"TrackOpens" : true
}
您可以啟用鏈接跟蹤來獲取收件人在電子郵件中點擊的鏈接的信息。可以按每條消息或每臺服務器啟用鏈接跟蹤。
了解有關鏈接跟蹤的更多信息。
{
...
"TrackLinks" : "HtmlAndText"
}
附件在 JSON 消息的數組中指定 Attachments
。然后可以將各個附件作為單獨的對象存儲在該數組中。
此 Name
字段是將顯示給郵件收件人的實際文件名。為了消除傳播病毒或間諜軟件的可能性,我們不允許某些文件類型:
該 ContentType
字段是電子郵件客戶端用來解釋附件的 MIME 內容類型。
該 Content
字段存儲文件的二進制數據,必須以 base64 編碼的字符串形式傳輸。大多數編程語言和庫都內置了此功能,例如 Java、 .NET、 PHP、 Ruby
限制:
TextBody
。 HtmlBody
{
...
"Attachments": [
{
"Name": "readme.txt",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "text/plain"
},
{
"Name": "report.pdf",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "application/octet-stream"
}
]
}
Postmark 還允許您通過 HTML 消息發送內嵌圖像。圖像必須采用 base64 編碼,并且字段 ContentID
必須與圖像的 CID 匹配。
只要 CID 標簽匹配,Postmark 就會自動將圖像嵌入到 HTML 中。 注意: 如果您在消息中多次引用附加圖像,則只需附加一次圖像。Postmark 將按照 HTML 標記中引用圖像的頻率使用該圖像。這將節省帶寬,避免附件大小限制。
{
...
"Attachments": [
{
"Name": "bacon.jpg",
"Content": "/9j/4AAQSkZJRgABAgEAAAAAAAD/4",
"ContentType": "image/jpeg",
"ContentID": "cid:part1.01030607.06070005@gmail.com"
}
]
}
<img src="cid:part1.01030607.06070005@gmail.com">
如果一切順利,您將收到一條類似示例的 JSON 消息。
該 MessageID
字段可用于登錄您的系統。然后,它可用于將您發送的消息與您從退回 webhook 或退回 API 獲得的可能退回相關聯。
查看API 錯誤的完整列表 以了解更多詳細信息。
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
"SubmittedAt": "2010-11-26T12:01:05.1794748-05:00",
"To": "receiver@example.com"
}
Postmark 不以任何方式托管附件,因此無法通過 Postmark UI、API 或 webhook 檢索附件。
POST
我們理解,處理量較大或處理時間受限的開發人員需要批量發送消息。為了方便使用,我們提供了一個批處理端點,允許您在單個 API 調用中發送最多 500 條格式正確的 Postmark 消息。如果您使用批量調用發送廣播(批量)消息,請使用 MessageStream 字段設置您的發送流。
請注意,批處理端點每個 API 調用最多接受 500 條消息,有效負載大小最多為 50 MB(包括附件)。
批量消息的格式為包含多個消息請求的JSON數組,
批量請求示例可參見此處。
curl "https://api.postmarkapp.com/email/batch" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Postmark-Server-Token: server token" \
-d '[{
"From": "sender@example.com",
"To": "receiver1@example.com",
"Subject": "Postmark test #1",
"TextBody": "Hello dear Postmark user.",
"HtmlBody": "<html><body><strong>Hello</strong> dear Postmark user.</body></html>",
"MessageStream": "outbound"
},
{
"From": "sender@example.com",
"To": "receiver2@example.com",
"Subject": "Postmark test #2",
"TextBody": "Hello dear Postmark user.",
"HtmlBody": "<html><body><strong>Hello</strong> dear Postmark user.</body></html>",
"MessageStream": "outbound"
}
]'
類似地,您將收到一個匹配的 JSON 數組,其中包含您在批量調用中發送的每個消息的響應。
查看API 錯誤的完整列表??以了解更多詳細信息。