Ruby on rails 4 如何在Rails 4中发送带有内联图像的电子邮件
我正在开发rails应用程序,希望向用户输入的电子邮件地址发送一封带有内联图像的电子邮件。我一直在努力做到这一点。我在网上查过了,我就是这么做的 当我在开发中输入一封电子邮件时,它会给我一个错误提示:, ActionController::未知信息格式 这是我的ActionMailer Notifier.rbRuby 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
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
类通知程序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”)吗