2012-07-31 95 views
0

在这里,我需要附加一个图像处理邮件时,通过图像这样图像附件与Rails3中

**imageurl** = "https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=%22hai%22&choe=UTF-8" 

class UserMailer < ActionMailer::Base 
default :from => "[email protected]" 

def welcome_email(**imageurl**,bname,mailid) 
    **attachments['image.png'] = File.read(imageURL)** 
    mail(:to => mailid, 
    :subject => "Code for "+bname+"", 
    :body => "code for bname") 
    end 
end 
end 

这里我得到了一些安装误差。此附件有任何更改吗?

谢谢

+0

你在做你的问题的编辑将不会帮助你;他们不是实质性的改进, – 2015-01-26 14:46:44

回答

2

我认为你有一个URL,即一个File.read无法读取的字符串。

require 'open-uri' 
class UserMailer < ActionMailer::Base 
    def welcome_email(image_url,bname,mailid) 
    attachments['image.png'] = open(URI.parse(image_url)) 
    ... 
    end 
end 

上述应该做的伎俩,我认为。

+0

是的,这将发送一个附件image.png的邮件。但是当我打开或下载那个图像时,那是空的。? – amtest 2012-07-31 07:57:36

+0

https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=%22hai%22&choe=UTF-8,有任何问题可以从URI.parse()中打开它吗? – amtest 2012-07-31 09:34:01

+0

使用您的Rails控制台。打开控制台并输入“require open-uri”,然后输入“URI.parse('google chart url')”,并确保获得一个URI对象。然后执行“s = open(_)”以确保您可以按照预期下载图像。如果你没有得到一个形象化的字符串,有什么问题。分解步骤和调试。 – 2012-07-31 09:36:57

0
require 'open-uri' 
class UserMailer < ActionMailer::Base 
    def welcome_email(image_url,bname,mailid) 
    mail.attachments[image.png] = { :mime_type => type*, :content => open(URI.parse(image_url)} 
    ... 
    end 
end 

其中type *为附加文件的类型,你的情况下,它会(“图像/ PNG”)

+0

再次,这将发送一个附件image.png的邮件。但是当我打开或下载那个图像时,那是空的。? DEF welcome_email(IMAGEURL,分支名称,mailID) encoded_content =开放(URI.parse(IMAGEURL)) 附件[ 'QR.png'] = {:MIME_TYPE => “图像/ PNG”, :含量=>编码内容} mail(:to => mailID, :subject =>“QR from”+ branchNAME +“”, :body =>“QR for the branch”+ branchNAME +“”) end end – amtest 2012-07-31 08:53:32