Отправка писем с вложениями с помощью Ruby on Rails через SendGrid - PullRequest
1 голос
/ 26 ноября 2011

Я пытаюсь отправить письмо с вложениями, используя Ruby on Rails. Я следовал инструкциям сайта ActionMailer .

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

Я могу получать электронные письма, но без вложения. Я пытаюсь прикрепить CSV-файл, но в качестве вложения я получаю файл с именем «noname»

Ответы [ 2 ]

11 голосов
/ 06 марта 2012

У меня просто была эта проблема. Я не предоставлял тело для письма, а только отправлял вложение. К сожалению, похоже, что SendGrid смущается этим, отправляя пустое электронное письмо (которое ожидается) с пустым вложением (которое не является ни ожидаемым, ни желательным).

Следовательно, решение : укажите тело письма. В вашем конкретном случае, шаблон /app/views/application_mailer/welcome.text.erb с простым текстом с надписью «см. Прикрепленный» или любым другим.

1 голос
/ 26 ноября 2011

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. Проверьте ваши журналы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...