我正在尝试使用gmail API发送电子邮件。如下所示,我的Ruby代码无需附件即可正常运行:
client = google_client user_id
token = Token.find_by_user_id(user_id)
access_token = token.access_token
gmail = Google::Apis::GmailV1::GmailService.new
gmail.authorization = client
message = Mail.new
message.date = Time.now
message.subject = 'Supertram p'
message.body = "<p>Hi Alex, how's life?</p>"
message.content_type = 'text/html'
message.from = self.email
message.to = '[email protected]'
msg = message.encoded
message_object = Google::Apis::GmailV1::Message.new(raw:message.to_s)
gmail.send_user_message('me', message_object)
我能够成功发送html格式的电子邮件。我的问题是如何将文件附加到此消息?
client = google_client user_id
token = Token.find_by_user_id(user_id)
access_token = token.access_token
gmail = Google::Apis::GmailV1::GmailService.new
gmail.authorization = client
message = Mail.new
message.date = Time.now
message.subject = 'Supertramp'
message.body = "<p>Hi Alex, how's life?</p>"
# message.content_type = 'text/html'
message.from = self.email
message.to = '[email protected]'
message.add_file("/Users/myname/Downloads/image.png")
msg = message.encoded
message_object = Google::Apis::GmailV1::Message.new(raw:message.to_s)
gmail.send_user_message('me', message_object)
但是这是我收到的消息:
-内容类型:文本/纯文本;charset = UTF-8 Content-Transfer-Encoding:7bit Alex,您好吗?
-内容类型:image / png; filename = image.png Content-Transfer-Encoding:base64 Content-Disposition:附件;文件名= image.png内容ID:<[email protected]> iVBORw0KGgoAAAANSUhEUgAAAfAAAABMCAYAAACS0 + VcAAAX9UlEQVR4Ae2d XWxj1bXH / 6lKK + D1VE1oKEa6CPNwpQh4SFBapYOrIoGUuRnN6IRR25HuC1C / AC8JDMiFGTlP8 [...] == ----
我只收到一个编码字符串,但没有收到附件。我的问题是如何通过带有附件的Gmail API发送电子邮件?
我认为您在附件方面缺少某些东西
message = Mail.new
message.date = Time.now
message.subject = 'Test Email'
message.body = "<p>Hi Test, how's life?</p>"
message.content_type = 'text/html'
message.from = "Test User <[email protected]>"
message.to = '[email protected]'
service = client.discovered_api('gmail', 'v1')
result = client.execute(
api_method: service.users.messages.to_h['gmail.users.messages.send'],
body_object: {
raw: Base64.urlsafe_encode64(message.to_s)
},
parameters: {
userId: '[email protected]'
},
headers: { 'Content-Type' => 'application/json' }
)
response = JSON.parse(result.body)
对于带有附件的多部分电子邮件:
message = Mail.new
message.date = Time.now
message.subject = 'Supertramp'
message.from = "testone <[email protected]>"
message.to = '[email protected]'
message.part content_type: 'multipart/alternative' do |part|
part.html_part = Mail::Part.new(body: "<p>Hi TEst, how's life?</p>", content_type: 'text/html; charset=UTF-8')
part.text_part = Mail::Part.new(body: "Hi test, how's life?")
end
open('http://google.com/image.jpg') do |file|
message.attachments['image.jpg'] = file.read
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句