Skip to content

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