【问题标题】:DirectMail SingSendMail not workingDirectMail SingSendMail 不工作
【发布时间】:2019-01-28 01:21:48
【问题描述】:

我正在尝试阿里云 DirectMail 的 singleSendMail API,请求看起来像这样

https://xx.xxxx.com/?Action=SingleSendMail
&AccountName=test@example.com
&ReplyToAddress=true
&AddressType=1   
&ToAddress=test1@example.com
&Subject=Subject
&HtmlBody=<body><h2>Test</h2></body>

我收到 400 错误 MissingParameter

【问题讨论】:

    标签: alibaba-cloud alibaba-cloud-direct-mail


    【解决方案1】:

    阿里云 REST API 有两组参数以及您必须在请求中包含的签名。

    以Python为例,需要指定公共参数如下:

    parameters = {}
    
    # Add the DirectMail public request parameters
    parameters["Format"] = "json"
    parameters["AccessKeyId"] = credentials['AccessKey']
    parameters["SignatureMethod"] = "HMAC-SHA1"
    parameters["SignatureType"] = ""
    parameters["SignatureVersion"] = "1.0"
    parameters["SignatureNonce"] = get_uuid()
    parameters["Timestamp"] = utc
    parameters["Version"] = "2017-06-22"
    parameters["RegionId"] = "ap-southeast-1"
    

    添加请求参数如下。您需要修改您的帐户信息:

    # Add parameters that are always set
    parameters["Action"] = "SingleSendMail"
    parameters["AddressType"] = "1"
    parameters["ReplyToAddress"] = "true"
    
    # Add the DirectMail API parameters
    parameters["AccountName"] = dm_account
    parameters["FromAlias"] = dm_alias
    parameters["ToAddress"] = to_list
    parameters["Subject"] = subject
    parameters["HtmlBody"] = body
    parameters["textBody"] = body_text
    

    然后您需要在请求上签名。

    我写了一篇关于 Direct Mail 和使用 Python 中完整的工作源代码生成签名的文章。

    DirectMail REST API

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2019-01-05
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 2018-12-22
      • 2016-04-19
      相关资源
      最近更新 更多