Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 邮件中的Rails:attachments.inline[]_Ruby On Rails 3_Actionmailer - Fatal编程技术网

Ruby on rails 3 邮件中的Rails:attachments.inline[]

Ruby on rails 3 邮件中的Rails:attachments.inline[],ruby-on-rails-3,actionmailer,Ruby On Rails 3,Actionmailer,我要在电子邮件中显示公司标志时,电子邮件发送。我去了ActionMailer基地,有一个附件内联功能,支持邮件中的图像 我是这样实施的: 在用户_mailer.rb中 def welcome_email(user) @user = user @url = "http://mealnut.com" attachments.inline['mealnut.png'] mail(:to => user.email, :subject => "Mealnut: New Order

我要在电子邮件中显示公司标志时,电子邮件发送。我去了ActionMailer基地,有一个附件内联功能,支持邮件中的图像

我是这样实施的:

在用户_mailer.rb中

def welcome_email(user)
@user = user
 @url  = "http://mealnut.com"
  attachments.inline['mealnut.png']

mail(:to => user.email, :subject => "Mealnut: New Order #{order.id}")
end
在config/application.rb中:

config.action_mailer.default_url_options = { :host => "mealnut.com" }
在welcome_email.html.web中

  <div class="logo">
          <%= image_tag attachments['mealnut.png'].url, :alt => 'Mealnut', :class => 'photo' %>
  </div>

出什么事了

附件和内联附件的不同之处在于,内联将通过base64插入附件,但您需要将文件附加到其中

  attachments.inline['mealnut.png'] = File.read( Rails.root.join("app/some/path/","mealnut.png") )
这样您就可以在视图中引用它了


希望有帮助

嘿,实施了你建议的解决方案。但它给出了一个错误:未定义的方法“length”表示“hey cool获得了至少包含邮件的图像:-”)。但它不会在邮件中显示为标题。它显示为附件。内联附件将作为使用base64编码的单独mime类型添加。我不知道你说的标题是什么意思,但我想你指的是附件,而不是内联附件。你能把这个答案设置为适合你吗。我接受了。我的意思是,邮件中的图片,而不是附件。非常感谢:-)。电子邮件设计为不包含内联附件。当他们建立它时,它基本上是专为短信设计的。之后,他们又增加了更多的功能(变通方法),使附件成为可能,但只能通过附件实现。电子邮件客户端变得越来越智能,因此他们在解释“变通方法”方面相当出色,但这也是一个问题。每个人的做法都不同,所以在测试时必须非常小心。(网络邮件:gmail,live,yahoo;outlook,mac mail…=>特别是垃圾邮件的定义!!!
  attachments.inline['mealnut.png'] = File.read( Rails.root.join("app/some/path/","mealnut.png") )