Cloud Outbound Mailer の概要
    • PDF

    Cloud Outbound Mailer の概要

    • PDF

    Article Summary

    概要

    Cloud Outbound Mailer APIは RESTfulの形式で提供されます。HTTP方式の GET/POST/DELETEメソッドの呼び出しを介して行われます。APIをを介して構成/管理してメールの送信をリクエストし、リクエスト結果を確認して送信履歴を照会します。

    共通設定

    Cloud Outbound Mailer API Endpoint

    リージョンEndpoint
    韓国(KR)https://mail.apigw.ntruss.com/api/v1
    シンガポール(SGN)https://mail.apigw.ntruss.com/api/v1-sgn/
    日本(JPN)https://mail.apigw.ntruss.com/api/v1-jpn/

    リクエストヘッダ

    ヘッダ名説明
    x-ncp-apigw-timestamp1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合、無効なリクエストとみなす
    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-iam-access-keyNAVERクラウドプラットフォームポータルで発行された Access Key ID値
    x-ncp-iam-access-key:{Account Access Key}
    x-ncp-apigw-signature-v2Access Key ID値と Secret Keyで暗号化した署名
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    x-ncp-langAPIレスポンス値の多言語処理のための値。(入力値の例: ko-KR、en-US、zh-CN、基本値: en-US)
    x-ncp-lang:{language code}

    認証ヘッダ

    Cloud Outbound Mailer APIは NAVERクラウドプラットフォーム API Gatewayを介して提供され、API Gatewayに登録された APIを使用するには2種類の認証キー(Access Key ID、Secret Key)を発行する必要があります。

    詳細については、NAVERクラウドプラットフォーム APIガイドをご参照ください。

    • 認証キーを作成
      • - NAVERクラウドプラットフォームポータルのマイページ > アカウント管理 > 認証キー管理メニューで、新規 API認証キー作成をクリックして Access Key ID、Secret Keyを作成します。
      • もし Access Key ID、Secret Keyがある場合、当該キーを使用します。

    リクエスト例

    curl -i -s -X POST \
     -H "Content-Type:application/json" \
     -H "x-ncp-apigw-timestamp:1521787414578" \
     -H "x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy" \
     -H "x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=" \
     "https://mail.apigw.ntruss.com/api/v1/mails"\
     -d '{"senderAddress":"no_reply@company.com","title":"${customer_name}様 お会いできて光栄です。","body":"お客様の等級が ${BEFORE_GRADE}から ${AFTER_GRADE}へ変更されました。","recipients":[{"address":"hongildong@naver_.com","name":"山田太郎","type":"R","parameters":{"customer_name":"山田太郎","BEFORE_GRADE":"SILVER","AFTER_GRADE":"GOLD"}},{"address":"chulsoo@daum_.net","name":null,"type":"R","parameters":{"customer_name":"太郎","BEFORE_GRADE":"BRONZE","AFTER_GRADE":"SILVER"}}],"individual":true,"advertising":false}'
    
    • Signatureの作成(改行文字は \nを使用)

      • - リクエストに合わせて StringToSignを作成し、SecretKeyで HmacSHA256アルゴリズムに暗号化した後、Base64にエンコードします。
      • この値をx-ncp-apigw-signature-v2に使用します。
    • サンプルコード

    public String makeSignature() {
        String space = " ";  // 空白
        String newLine = "\n";  // 改行
        String method = "POST";  // HTTPメソッド
        String url = "/api/v1/mails";  // ドメインを除く「/」下の全体 url(クエリ文字列を含む)
        String timestamp = "{timestamp}";  // 現在のタイムスタンプ (epoch, millisecond)
        String accessKey = "{accessKey}";  // access key id (from portal or sub account)
        String secretKey = "{secretKey}";  // secret key (from portal or sub account)
    
        String message = new StringBuilder()
            .append(method)
            .append(space)
            .append(url)
            .append(newLine)
            .append(timestamp)
            .append(newLine)
            .append(accessKey)
            .toString();
    
        SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256");
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(signingKey);
    
        byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8"));
        String encodeBase64String = Base64.getEncoder().encodeToString(rawHmac);
    
      return encodeBase64String;
    
    }
    
    function makeSignature() {
        $space = " ";  // 空白
        $newLine = "\n";  // 改行
        $method = "POST";  // HTTPメソッド
        $uri= "/api/v1/mails";  // ドメインを除く「/」下の全体 url(クエリ文字列を含む)
        $timestamp = "{timestamp}";  // 現在のタイムスタンプ (epoch, millisecond)
        $accessKey = "{accessKey}";  // access key id (from portal or sub account)
        $secretKey = "{secretKey}";  // secret key (from portal or sub account)
        
        $hmac = $method.$space.$uri.$newLine.$timestamp.$newLine.$accessKey;
        $signautue = base64_encode(hash_hmac('sha256', $hmac, $secretKey,true));
        
        return $signautue;
    }
    

    共通レスポンス

    HTTPステータスコードでリターンされ、Body情報として伝達する。

    HTTP Status Codeリターンコード説明
    200-一般的なリクエストの成功
    201-リソース作成の成功に対するレスポンスコード
    40077101ログイン情報エラー
    40077102BAD_REQUEST
    40077103リソースが存在しない
    40377201権限なし
    40377202Email商品の使用申請をしない
    40577001METHOD_NOT_ALLOWED
    41577002UNSUPPORTED_MEDIA_TYPE
    50077301基本プロジェクトが存在しない
    50077302外部システム APIの連携エラー
    50077303その他の INTERNAL_SERVER_ERROR

    オペレーション

    Emailの送信

    受信者グループの管理

    テンプレートの管理

    プロジェクト設定の管理

    送信ブロックおよび受信拒否の管理

    ファイルの管理


    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.