Send Email
Description
寄送電子郵件。
Resource
POST /v1/basic/send_email
Authorization
採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。
Request Body Parameters
| Name | Type | Description |
|---|---|---|
| title | string | 標題 |
| content | string | 訊息 |
| sender_mail | string | 傳送者電子信箱 |
| recipient_mail | string[] | 收件者電子信箱 |
| cc_mail | string[] | 副本收件者信箱 (optional) |
| bcc_mail | string[] | 密件副本收件者信箱 (optional) |
Request Example
{
"title": "標題",
"content": "訊息",
"sender_mail": "[email protected]",
"recipient_mail": ["[email protected]", "[email protected]"],
"cc_mail": ["[email protected]", "[email protected]"],
"bcc_mail": ["[email protected]", "[email protected]"]
}
Response Success
Status-Code: 204 No Content
Response Failed
Status-Code: 400 Bad Request
{
"message": "缺少標題欄位資料"
}
{
"message": "缺少收件者信箱資料"
}
Send Email API Workflow
%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
sequenceDiagram
autonumber
participant D as Device
participant SE as SendEmailAPI
participant CP as self.check_params()
participant EU as EmailUtils.send_email()
D->>SE: Call Send Email API
activate SE
SE->>CP: Call self.check_params()
activate CP
CP->>SE: Return Result
deactivate CP
alt result['status_code'] != 204
SE->>D: Return Response(400)
end
SE-->SE: self.resource_id = params['recipient_mail']
SE->>EU: Call send_email(params, self.logger_params)
activate EU
EU->>SE: Return Result
deactivate EU
alt result['status_code'] != 204
SE->>D: Return Response(400)
end
SE->>D: Return Response(204)
deactivate SE
Email Utils - Send Email Proccess By Company Workflow
%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
sequenceDiagram
autonumber
participant O as Object
participant SEPBC as send_email_process_by_company()
participant SE as send_email()
O->>SEPBC: Call send_email_proccess_by_company(o.company_id, o.title, o.content)
activate SEPBC
SEPBC-->SEPBC: Handle Send Email Request Data
SEPBC->>SE: Call self.send_email(params, self.logger_params)
deactivate SEPBC
activate SE
SE->>O: Return Result
deactivate SE
Email Utils - Send Email Workflow
%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
sequenceDiagram
autonumber
participant O as Object
participant SE as send_email()
participant SMTP as smtplib.SMTP()
O->>SE: Call send_email(o.param, o.logger_params)
activate SE
SE->>SMTP: Call smtplib.SMTP()
activate SMTP
alt smtplib.SMTP() is throws excepiton
SMTP->>SE: Throws exception
deactivate SMTP
SE->>O: Return Response(400)
end
SE->>O: Return Response(204)
deactivate SE