MENU
      Cloud Outbound Mailer の概要

        Cloud Outbound Mailer の概要


        記事の要約

        概要

        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}'
        Plain text
        • 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;
        
        }
        Java
        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;
        }
        PHP

        共通レスポンス

        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の送信

        受信者グループの管理

        テンプレートの管理

        プロジェクト設定の管理

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

        ファイルの管理


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

        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.