Я создаю приложение, которое будет использоваться для отправки электронной почты. Мне не нужно использовать обычные почтовые программы и просматривать шаблоны, потому что я просто получаю данные, которые будут использоваться для генерации электронной почты. Однако я предполагаю, что есть некоторые преимущества для использования ActionMailer
, а не для непосредственного взаимодействия с SMTP
. Я столкнулся с проблемами при попытке создать экземпляр нового экземпляра ActionMailer::Base
. Как я могу использовать ActionMailer
самостоятельно, без необходимости определять новый класс, который расширяет ActionMailer::Base
?Rails: Как использовать ActionMailer самостоятельно?
ответ
Основная функциональность для ActionMailer обеспечивается mail gem. Это позволяет отправлять почту очень просто, например:
Mail.deliver do
from '[email protected]'
to '[email protected]'
subject 'Here is the image you wanted'
body File.read('body.txt')
add_file :filename => 'somefile.png', :content => File.read('/somefile.png')
end
Он поддерживает доставку всех те же методы, что ActionMailer делает.
Это самое основное решение. Вы должны изменить параметры smtp и жестко закодированные значения на переменные и т. Д. Таким образом, вам не нужно использовать представление. Если вы все еще хотите использовать ERB, я предлагаю вам проверить Railscast 206.
Просто измените этот код, поместите его в файл как «test_email.rb» и называем его ruby test_email.rb
require 'action_mailer'
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "testuser123",
:password => "secret",
:authentication => "plain",
:enable_starttls_auto => true
}
class TestMailer < ActionMailer::Base
default :from => "[email protected]"
# def somemethod()
# mail(:to => "John Doe <[email protected]>", :subject => "TEST", :body => "HERE WE GO!!!")
# end
def mail(args)
super
end
end
# TestMailer.somemethod().deliver
TestMailer.mail(:to => "John Doe <[email protected]>", :subject => "TEST", :body => "HERE WE GO!!!")
Это то, что я уже делаю. У меня есть общая почтовая программа с общим методом «подготовки». Я хотел бы сделать что-то вроде call 'mail()' непосредственно, так как это все, что я использую. – Andrew
Хорошо, я изменил свой код на более общий. Это то, чего вы хотите, но не так, как вы это предлагали. Я знаю, что у него немного накладных расходов, но он соответствует вашим требованиям. Вы можете переопределить все, нет представлений и т. Д. Значение по умолчанию не имеет значения, поскольку вы можете добавить свой собственный в mail(). – ayckoster
Ах, я думаю, что лучше теперь понимаю. В основном вы ищете простой однострочный шрифт, похожий на почту php(), правильно?
Если это так, ActionMailer не имеет для вас смысла, потому что это действительно не правильный инструмент для этой работы.
Я думаю, что победитель для вас является рубин драгоценный камень под названием Pony: https://github.com/benprew/pony
пример:
Pony.mail(:to => '[email protected]', :from => '[email protected]', :subject => 'hi', :body => 'Hello there.')
Я обнаружил, что ActionMailer вне Rails является исчерпывающим и немного громоздким в использовании. Я также использую Pony вне в моих проектах Ruby (но не Rails). – dimitarvp
- 1. Rails: когда использовать самостоятельно
- 2. Как повторно использовать шаблон Rails в ActionMailer
- 3. Rails ActionMailer без просмотров
- 4. ActionMailer 3 без Rails
- 5. Rails ActionMailer параметр - строка
- 6. Как установить приоритет Rails ActionMailer
- 7. ActionMailer Rails 3
- 8. Rails ActionMailer, link_to forward?
- 9. ActionMailer Doubt in Rails
- 10. методы Rails ActionMailer путаница
- 11. Асинхронный Actionmailer в Rails
- 12. Rails 4 заголовки ActionMailer
- 13. Rails 3.2.1 ActionMailer установки
- 14. Rails Admin/Actionmailer
- 15. Rails 4 ActionMailer Issue
- 16. Rails ActionMailer lib directory
- 17. Namespaced actionmailer в rails
- 18. Как Rails 3 actionmailer определяет, какой формат использовать?
- 19. Как я могу использовать имена в ActionMailer? [Rails 2.3.5]
- 20. Как использовать form_for в ActionMailer
- 21. Rails Ассоциация самостоятельно
- 22. Rails 3.2 Ошибка демонстрации ActionMailer
- 23. Rails 3 ActionMailer Атрибут модели
- 24. Rails 4 ActionMailer без шаблона
- 25. Rails 3 ActionMailer повреждает вложения
- 26. Rails 4: настроить модель ActionMailer
- 27. Тестирование Метод приема ActionMailer (Rails)
- 28. Использование ActionMailer в плагине Rails
- 29. Rails ActionMailer error undefined email
- 30. Rails: настройка времени выполнения ActionMailer?
Вопрос немного запутанный. Вы говорите, что создаете RESTful API для отправки электронных писем. Приложение rails, которое обрабатывает API RESTful, также отвечает за отправку электронных писем? – patrickmcgraw
Вы правы, извините. Я обновил вопрос и вынул часть о REST, потому что это не имело никакого отношения к моему реальному вопросу. – Andrew
Почему вы не хотите расширять ActionMailer :: Base? Так оно и должно работать. – tybro0103