我正在尝试使用Ruby on Rails发送带附件的电子邮件。 我按照the ActionMailer网站上的说明进行操作。
def welcome(recipient)
@account = recipient
attachments['file.csv'] = File.read('/path/to/users.csv')
mail(:to => recipient,
:bcc => ["email@example.com", "email2@example.com"],
:subject => "Sending attachment")
end
我能够收到电子邮件但没有附件,我正在尝试附加csv文件,但我收到一个名为“noname”的文件作为附件
答案 0 :(得分:11)
我刚遇到这个问题。我没有为电子邮件提供正文,只是发送附件。不幸的是,似乎SendGrid对此感到困惑,发送一个空的电子邮件(预期)与空的附件(这既不是预期也不是期望)。
因此,解决方案:为电子邮件提供正文。在您的具体情况下,/app/views/application_mailer/welcome.text.erb
模板带有简单的文字,说“请参阅附件”或其他适用的内容。
答案 1 :(得分:1)
SendGrid是一种SMTP服务,因此应该像任何其他出站SMTP服务一样运行。您确定您的语法和文件路径是否正确?
class ApplicationMailer < ActionMailer::Base
def welcome(recipient)
attachments['free_book.pdf'] = File.read('path/to/file.pdf')
mail(:to => recipient, :subject => "New account information")
end
end