我已经创建了一个使用Sendgrid发送电子邮件的hello_world方法。我正在尝试包含一个附件。我在另一个stackoverflow答案中找到了以下行:
mail.attachments['test.txt'] = File.read("#{Rails.root}/public/test.txt")
然而,这会生成以下错误:Completed 500 Internal Server Error in 17ms (ActiveRecord: 3.4ms)
TypeError - no implicit conversion of String into Integer:
app/controllers/messages_controller.rb:32:in `hello_world'
app/controllers/messages_controller.rb:65:in `create'
在控制器中邮寄代码:
def hello_world(company, message)
from = Email.new(email: "test+#{current_user.auth_token}@example.com")
to = Email.new(email: 'hello@pim.gg')
subject = 'TEST from dev'
content = Content.new(type: 'text/plain', value: "#{company.email} #{current_user} #{current_user.first_name} #{current_user.last_name} #{message.text}")
mail = SendGrid::Mail.new(from, subject, to, content)
mail.attachments['test.txt'] = File.read("#{Rails.root}/public/test.txt")
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
response = sg.client.mail._('send').post(request_body: mail.to_json)
puts response.status_code
puts response.body
puts response.headers
end
NameError - 未定义的局部变量或方法 fpath' for #<MessagesController:0x00007fed4a53c228>: app/controllers/messages_controller.rb:34:in 'hello_world' app/controllers/messages_controller.rb:72:in 'create'
- Pimmeszfpath = "#{Rails.root}/public/test.txt"
fname = 'test.txt'
attachment.type = 'text/html'
- Artem Dorodovskyi