我使用ruby-gmail gem发送邮件。
我想做的是将ruby哈希作为json文件发送。
示例:
require 'gmail'
require 'json'
hash = {'foo' => 'bar}
Gmail.new(<EMAIL>, <PASSWORD>) do |gmail|
gmail.deliver do
to <RECIPIENT>
subject <SUBJECT>
text_part do
body <EMAIL MESSAGE>
end
add_file hash.to_json
end
end
当我尝试这个时,它只是发送没有附件的邮件。
我接下来可以尝试什么?
修改
我想在没有先创建文件的情况下这样做。
答案 0 :(得分:0)
您需要先创建该文件,然后才能使用add_file
方法发送该文件:
hash = {'foo' => 'bar'}
File.open("filename.json","w") do |f|
f.write(hash.to_json)
end
然后:
Gmail.new(<EMAIL>, <PASSWORD>) do |gmail|
gmail.deliver do
to <RECIPIENT>
subject <SUBJECT>
text_part do
body <EMAIL MESSAGE>
end
add_file 'path/to/filename.json`
end
end
答案 1 :(得分:0)
如果您使用&#34; gmail&#34; gem(https://rubygems.org/gems/gmail),然后您可以添加具有名称和内容参数的文件,而不必实际创建本地文件。例如:
Gmail.connect(<EMAIL>, <PASSWORD>) do |gmail|
gmail.deliver do
to(<RECIPIENT>)
subject(<SUBJECT>)
text_part do
body(<TEXT_BODY>)
end
html_part do
content_type('text/html; charset=UTF-8')
body(<HTML_BODY>)
end
add_file({filename: <FILE_NAME>, content: <FILE_CONTENT>})
end
end