2012-07-31 64 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