gpt4 book ai didi

ruby-on-rails - RestClient mailgun 错误 "message": "' from' parameter is missing"

转载 作者:行者123 更新时间:2023-12-02 01:03:56 25 4
gpt4 key购买 nike

我在我的 Rails 应用程序中使用 RestClient 来发送电子邮件。以下 Curl 命令有效:

    curl -s "https://api:key-XYZ@api.mailgun.net/v2/sandbox30000.mailgun.org/messages" \
-F from='Mailgun Sandbox <postmaster@sandbox30000.mailgun.org>' \
-F to='me <my-email-id@gmail.com>'\
-F subject='Hello XYZ' \
-F text='Congratulations, you just sent an email with Mailgun! You are truly awesome!'

但是当我使用 RestClient 尝试相同的操作时,我收到以下错误消息:

    error response !!{
"message": "'from' parameter is missing"
}

错误信息!!400 错误请求

RestClient 调用:

    RestClient::Request.execute(
:url => "https://api:key-XYZ@api.mailgun.net/v2/sandbox0000.mailgun.org/messages",
:method => :post,
:from => 'Mailgun Sandbox <postmaster@sandbox30000.mailgun.org>',
:sender => 'Mailgun Sandbox <postmaster@sandbox30000.mailgun.org>',
:to => "my-email-id@gmail.com",
:subject => "Hello XYZ",
:text => "Text body",
:"h:X-My-Header" => "www/mailgun-email-send",
:verify_ssl => false)

最佳答案

当您使用带有多个负载参数和 header 的 Request.execute 时,您需要告诉 RestClient 它是什么类型的数据。

您需要这三个修复程序才能获得与 RestClient 等效的 curl-request。

  1. 将所有帖子字段分组到有效负载哈希中
  2. 将单个 header 添加到 header 哈希中
  3. 告诉 RestClient 负载应该作为多部分发送。

更改后的请求:

RestClient::Request.execute(
:url => "https://api:key-XYZ@api.mailgun.net/v2/sandbox0000.mailgun.org/messages",
:method => :post,
:payload => {
:from => 'Mailgun Sandbox <postmaster@sandbox30000.mailgun.org>',
:sender => 'Mailgun Sandbox <postmaster@sandbox30000.mailgun.org>',
:to => "my-email-id@gmail.com",
:subject => "Hello XYZ",
:text => "Text body",
:multipart => true
},
:headers => {
:"h:X-My-Header" => "www/mailgun-email-send"
},
:verify_ssl => false
)

关于ruby-on-rails - RestClient mailgun 错误 "message": "' from' parameter is missing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24881012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com