2011-11-26 349 views
1

我試圖使用Ruby on Rails的附件發送電子郵件。 我遵循the ActionMailer網站的指示。通過SendGrid使用Ruby on Rails發送帶有附件的電子郵件

def welcome(recipient) 
    @account = recipient 
    attachments['file.csv'] = File.read('/path/to/users.csv') 
    mail(:to => recipient,  
     :bcc => ["[email protected]", "[email protected]"], 
     :subject => "Sending attachment") 
end 

我能接收電子郵件,但沒有附件,我試圖附加CSV文件,但我得到了一個名爲「NONAME」文件作爲附件

回答

11

我只是有這個問題。我沒有提供電子郵件的正文,只發送附件。不幸的是,似乎SendGrid會因此而感到困惑,發送一封空的電子郵件(這是預期的)和一個空的附件(這既不是期望的也不是期望的)。

因此,的解決方案:提供了一個電子郵件的正文。在你的具體情況下,一個簡單的文字模板,說「看附件」或任何適當的。

+1

僅當使用沒有SendGrid的ActionMailer時,也會發生這種情況。 – corbin

1

SendGrid是SMTP服務,因而應像其他任何出站SMTP服務一樣運行。你確定你的語法和文件路徑是正確的嗎?

class ApplicationMailer < ActionMailer::Base 
    def welcome(recipient) 
    attachments['free_book.pdf'] = File.read('path/to/file.pdf') 
    mail(:to => recipient, :subject => "New account information") 
    end 
end 
  1. 驗證正確的語法
  2. 驗證正確的文件路徑
  3. 驗證權限在文件中設置正確
  4. 檢查日誌
+0

你好,謝謝你的回覆,我只是交叉檢查了你提到的所有東西。每件事情看起來都很清楚,但我沒有收到所需的附件,而是獲得了「noname」作爲附件。 –

+0

:你好,謝謝你的回覆,我只是交叉檢查你所提到的所有事情。每件事情看起來很清楚,但我沒有收到所需的附件,而是獲得「noname」作爲附件 –

相關問題