Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 如何在Rails 4中发送带有内联图像的电子邮件_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 如何在Rails 4中发送带有内联图像的电子邮件

Ruby on rails 4 如何在Rails 4中发送带有内联图像的电子邮件,ruby-on-rails-4,Ruby On Rails 4,我正在开发rails应用程序,希望向用户输入的电子邮件地址发送一封带有内联图像的电子邮件。我一直在努力做到这一点。我在网上查过了,我就是这么做的 当我在开发中输入一封电子邮件时,它会给我一个错误提示:, ActionController::未知信息格式 这是我的ActionMailer Notifier.rb class Notifier < ActionMailer::Base default from: "insidespintex@gmail.com" def enter_em

我正在开发rails应用程序,希望向用户输入的电子邮件地址发送一封带有内联图像的电子邮件。我一直在努力做到这一点。我在网上查过了,我就是这么做的

当我在开发中输入一封电子邮件时,它会给我一个错误提示:, ActionController::未知信息格式

这是我的ActionMailer Notifier.rb

class Notifier < ActionMailer::Base
default from: "insidespintex@gmail.com"



def enter_email(sending)

@coming = sending
attachments.inline['blank'] = {
:data => File.read("#{Rails.root.to_s + '/app/assets/images/News.png'}"),
:mime_type => "image/png",
:encoding => "base64"
 }
mail :to => @coming.email, :subject => 'InsideSpintex is coming soon'

   end
  end
类通知程序File.read(#{Rails.root.to_s+'/app/assets/images/News.png'}), :mime_type=>“image/png”, :encoding=>“base64” } mail:to=>@coming.email,:subject=>“InsideSpintex即将推出” 结束 结束 这是我的ApplicationController LandingController.rb

class LandingController < ApplicationController

layout 'landingPage'

def soon

    @coming = Coming.new

end

def after
    render 'after'
end

def save_email
    @coming = Coming.new(soon_params)


    respond_to do |format|
        if @coming.save
            Notifier.enter_email(@coming).deliver
             format.html { render action: 'after' }
            #render 'after'
         else
            render 'soon'

    end
 end
end
#render 'soon'
private
    def soon_params
        params.require(:coming).permit(:email)
    end
end
class-LandingController
这是我的观点,请输入_email.html.erb

<p> Hello There,</h3>
    <%= image_tag attachments['News.png'] %> 
你好,
好吧,我认为您不需要attachments.inline散列中的编码部分。我在一个项目中使用了类似的东西:

梅勒方法:

attachments.inline['logo.png'] = {
  data: File.read(Rails.root.join('app/assets/images/logo.png')),
  mime_type: 'image/png'
}
您在视图中缺少
.url

<%= image_tag attachments['logo.png'].url %>

好吧,我认为您不需要attachments.inline散列中的编码部分。我在一个项目中使用了类似的东西:

梅勒方法:

attachments.inline['logo.png'] = {
  data: File.read(Rails.root.join('app/assets/images/logo.png')),
  mime_type: 'image/png'
}
您在视图中缺少
.url

<%= image_tag attachments['logo.png'].url %>


运行浏览器时,我在浏览器中遇到此错误。Errno::enoint in LandingController#save_email没有这样的文件或目录-/app/assets/images/News.png我的assets/images中有News.png。我不知道为什么会出现这个错误@Babinho您可以尝试在控制台中执行以下操作:
File.read(Rails.root.join('app/assets/images/News.png'))
并查看是否会引发相同的错误?另外,您确定它不是
news.png
小写(扩展名大小写也可以是“png/png”)吗?我在运行浏览器时遇到了这个错误。Errno::enoint in LandingController#save_email没有这样的文件或目录-/app/assets/images/News.png我的assets/images中有News.png。我不知道为什么会出现这个错误@Babinho您可以尝试在控制台中执行以下操作:
File.read(Rails.root.join('app/assets/images/News.png'))
并查看是否会引发相同的错误?另外,您确定它不是小写的
news.png
(扩展名大小写“png/png”)吗