alibaba-cloud - DirectMail SingSendMail 不工作
问题描述
我正在尝试阿里云 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
解决方案
阿里云 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 中完整的工作源代码生成签名的文章。
推荐阅读
- javascript - Brave 浏览器上的 Dropzonejs - 数据图像预览不起作用
- pytest - 作为用户级配置,如何使 pytest 快速失败?
- delphi - 在 Firemonkey OSX、Windows 和 Linux 上嵌入 Delphi Chromium 替代方案
- assembly - (NASM)汇编程序输出2个数字中较大的问题
- python - 2个不同长度的熊猫列之间的滚动皮尔逊相关性
- c# - 如何使用 asp.net Identity 获取用户的 id
- plot - 使用 scilab 说明特殊功能
- python - Python re.findall() 除了一个变量
- qt - 如何将 QDockWidgets 停靠在 QSplitter 中?
- c# - 保护 ASP.NET Web API 服务的外部 API 端点 (ASP.NET 4.6)