【发布时间】:2017-09-13 21:25:42
【问题描述】:
我正在尝试使用 Ruby 发送带有附件的电子邮件,并且我有以下行:
from = Email.new(email: 'mail@mail.com')
to = Email.new(email: 'mail@mail.com')
subject = 'file for this week'
content = Content.new(type: 'text/plain', value: 'Please find file for this week.')
mail = Mail.new(from, subject, to, content)
mail.attachments['test.txt'] = File.read("#{Rails.root}/public/test.txt")
sg = SendGrid::API.new(api_key:'myapikey')
sg.client.mail._('send').post(request_body: mail.to_json)
问题是以下行的代码(当我删除它时,我会收到一封电子邮件):
mail.attachments['test.txt'] = File.read("#{Rails.root}/public/test.txt")
但是当我尝试运行它时,我收到以下错误:
undefined method '[]=' for nil:NilClass
以前有人遇到过这个错误吗?
【问题讨论】:
-
这意味着
mail.attachments返回 nil。mail变量来自哪里? -
我已经更新了问题中的源代码。
-
请再检查一遍
标签: ruby-on-rails ruby sendgrid cloud9-ide