【发布时间】:2017-03-07 21:55:56
【问题描述】:
有没有人有一个简单的例子来说明如何使用 v0.9 API 从头开始发送电子邮件。
只是想要一个发送以下内容的示例:
m = Mail.new(
to: "test1@test.com",
from: "test2@test.com",
subject: "Test Subject",
body:"Test Body")
现在要创建需要发送的消息对象,我们可以使用:
msg = Base64.urlsafe_encode64 m.to_s
然后尝试发送(其中message_object = msg):
client = Google::Apis::GmailV1::GmailService.new #Appropriately authorised
client.send_user_message("me", message_object)
客户端想要一个 RFC822 兼容的编码字符串,上面应该是。
我试过了:
message_object = msg
=> Google::Apis::ClientError: invalidArgument: 'raw' RFC822 payload message string or uploading message via /upload/* URL required
message_object = raw:msg
=>ArgumentError: unknown keyword: raw
message_object = {raw:msg}
=>ArgumentError: unknown keyword: raw
message_object = Google::Apis::GmailV1::Message.new(raw:msg)
=> #<Google::Apis::GmailV1::Message:0x007f9158e5b4b0 @id="15800cd7178d69a4", @thread_id="15800cd7178d69a4">
#But then I get Bounce <nobody@gmail.com> - An error occurred. Your message was not sent.
即它们都不起作用...
通过 Gmail API 接口测试器here 发送基本的编码字符串(上面的 msg)有效。
我显然在这里遗漏了一些明显的东西,即如何构造使其通过 API 工作所需的对象。
【问题讨论】:
-
究竟是什么不起作用?你期望发生什么,实际发生了什么?你得到了哪些例外?运行哪个确切的代码时?请参阅stackoverflow.com/help/mcve,了解如何创建一个最小的、完整的和可验证的示例来帮助其他人解决您的问题。
-
线索在方法的名称中。发送消息应该发送消息。无需对 google 的 oauth 过程进行冗长而冗长的演练,该示例就已经尽可能清楚了。我正在使用 google 的 ruby 客户端库中的一种方法。 Gmail API 的客户端库。 Gmail 是一种电子邮件服务电子邮件的目的之一是在两方之间进行发送和电子通信。上面的示例是尝试在两方之间发送电子通信。真的不知道我能清楚多少……
-
您的问题中缺少的仍然是什么不起作用。运行代码时会发生什么?你有例外吗?还有其他行为吗?你怎么知道“它不起作用”?请参考我上面链接的文章,了解如何写一个好问题,让别人帮助你..
-
问题是你不明白这个问题。没关系。我不希望您熟悉 googles api 客户端。但这就是问题所在。如果您对 google-api-ruby-client v0.9 非常熟悉,那么这个问题对您来说非常有意义。如果您对它不熟悉,那将没有任何意义……也就是说,我很乐意就您认为会使它成为更好问题的建议提出建议。你是说你真的不明白吗?
-
怎么样?不确定我已经为了解 api 客户端的任何人添加了很多内容,但这对您来说更清楚吗?
标签: ruby google-api gmail gmail-api google-api-ruby-client