图片未显示在 Rails 上带有操作邮件的 rask 任务中
images not showing up in rask task with action mailer on Rails
所以我为我的用户创建了一封欢迎邮件。我希望在特定时间发送这封电子邮件,所以我将其嵌套到一个 rake 任务中并将其添加到我的 heroku 调度程序中。
问题是,电子邮件模板有图像。
当我打开控制台并输入 UserMailer.welcome_email(user).deliver_now
时,一切正常。当我收到电子邮件时,图像确实会显示。
但是,当我 运行 rake send_welcome_email
时,电子邮件已发送,但里面显示了 none 的图像。
这是我的 user_mailer.rb:
def welcome_email(user)
@user = user
mail(to: @user.email, subject: 'Welcome !')
end
我的scheduler.rake:
desc "This task is called by the Heroku scheduler add-on. It aims to send the second of the four welcome emails to new users"
task :send_welcome_email => :environment do
users = User.find_by(email: "useremail@email.com")
puts 'Sending welcome email...'
UserMailer.welcome_email(users).deliver_now
puts '...Done !'
end
和我的 image_tags 在我的 welcome_email.html.erb 中:
<%= image_tag "myimage.svg" %>
<%= image_tag "email_images/myotherimage.jpg" %>
请注意,我已经尝试过像这样更改相对路径:
- /myimage.svg
- /images/myimage.svg
- /资产/images/myimage.svg
- images/myimage.svg
- 资产/images/myimage.svg
问题可能来自哪里?
你可以做的是在邮件程序 (UserMailer) 中明确说明你想要哪些图像,比如
attachments.inline['myimage.svg'] = File.read("#{Rails.root.to_s + '/app/assets/images/myimage.svg'}")
从那里,您可以使用
在邮件程序模板中调用它
<%= image_tag attachments.inline["myimage.svg"].url %>
所以我为我的用户创建了一封欢迎邮件。我希望在特定时间发送这封电子邮件,所以我将其嵌套到一个 rake 任务中并将其添加到我的 heroku 调度程序中。
问题是,电子邮件模板有图像。
当我打开控制台并输入 UserMailer.welcome_email(user).deliver_now
时,一切正常。当我收到电子邮件时,图像确实会显示。
但是,当我 运行 rake send_welcome_email
时,电子邮件已发送,但里面显示了 none 的图像。
这是我的 user_mailer.rb:
def welcome_email(user)
@user = user
mail(to: @user.email, subject: 'Welcome !')
end
我的scheduler.rake:
desc "This task is called by the Heroku scheduler add-on. It aims to send the second of the four welcome emails to new users"
task :send_welcome_email => :environment do
users = User.find_by(email: "useremail@email.com")
puts 'Sending welcome email...'
UserMailer.welcome_email(users).deliver_now
puts '...Done !'
end
和我的 image_tags 在我的 welcome_email.html.erb 中:
<%= image_tag "myimage.svg" %>
<%= image_tag "email_images/myotherimage.jpg" %>
请注意,我已经尝试过像这样更改相对路径:
- /myimage.svg
- /images/myimage.svg
- /资产/images/myimage.svg
- images/myimage.svg
- 资产/images/myimage.svg
问题可能来自哪里?
你可以做的是在邮件程序 (UserMailer) 中明确说明你想要哪些图像,比如
attachments.inline['myimage.svg'] = File.read("#{Rails.root.to_s + '/app/assets/images/myimage.svg'}")
从那里,您可以使用
在邮件程序模板中调用它<%= image_tag attachments.inline["myimage.svg"].url %>