私は電子メールの送信に使用されるアプリケーションを作成しています。メールを生成するために使用されるデータを受信するだけなので、通常のメーラーとテンプレートを使用する必要はありません。しかし、SMTP
と直接対話するのではなく、ActionMailer
を使用するといくつかの利点があると私は推測します。 ActionMailer::Base
の新しいインスタンスをインスタンス化しようとしているときに問題が発生しました。 ActionMailer::Base
を拡張する新しいクラスを定義することなく、ActionMailer
を単独で使用するにはどうすればよいですか?Rails:ActionMailerを単独で使用するには?
答えて
私はあなたのための勝者はポニーと呼ばれるルビーの宝石だと思います。これにより、メールを非常に簡単に送信できます。
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!!!")
これは私がすでにやっていることのタイプです。私は一般的な "準備"メソッドを持つ一般的なメーラーを持っています。私はそれを使用しているので、直接 'mail()'を呼び出すようなことをしたいと思います。 – Andrew
私のコードをより一般的なものに変更しました。これはあなたが望むものですが、あなたがそれを提案した方法ではありません。私はそれが少しオーバーヘッドがあることを知っていますが、それはあなたの仕様に従います。あなたは全てをオーバーライドすることができ、ビューはありません。デフォルトのfromはあなた自身をmail()に追加できるので、無関係です。 – ayckoster
ああでそれを呼び出す、私はより良い今理解だと思います。基本的には、phpのmail()に似た簡単なone-linerを探していますよね?
もしそうなら、ActionMailerは本当にこの仕事のための適切なツールではないのであなたに意味をなさない。 https://github.com/benprew/pony
例:actionmailerのための基本となる機能はmail gemによって提供され
Pony.mail(:to => '[email protected]', :from => '[email protected]', :subject => 'hi', :body => 'Hello there.')
私は、Railsの外でActionMailerが冗長で使いにくいと感じています。私はRuby(ただしRailsではない)プロジェクトの外部にPonyを使用しています。 – dimitarvp
- 1. クラスを使用したC++単独リンクリスト
- 2. MySQLのSETは単独で使用できますか?
- 3. Kotlin/Nativeは単独で使用できますか?
- 4. MSBuildバイナリは単独で使用できますか?
- 5. ember-dataを単独で初期化/使用するには(ember-cliなし)
- 6. Sonar Webレポーティングツールを単独で使用することはできますか?
- 7. Datalogを単独で使用することは可能ですか?
- 8. クラスはメタマジックを使用してAttributeErrorを単独で処理できますか?
- 9. &regexで単独で出る
- 10. oozieを使用せずにsparkを単独で実行できますか?
- 11. grailsプラグインコントローラを単独でテストする
- 12. 単独リンクリストをマップに変換する
- 13. polymorphic belongs_toアソシエーションを使用してモデルを単独でテストするにはどうすればよいですか?
- 14. Hyde(Python)は単独のソリューションですか?
- 15. HTMLで単独でリロードする
- 16. バニラJavaScript + ASP.Net CoreでAureliaのバインディングライブラリを単独で使用できますか?
- 17. wxWidgets型を独自のクラスで使用するには?
- 18. aws-java-sdk-s3を独自のドメインで使用するには?
- 19. 単独リンクリストコピーコンストラクタ
- 20. NSLayoutConstraintが単独で再アクティブ化する
- 21. 単独リンクリストを使用した編集方法の作成
- 22. C#を使用した単独リンクリストの実装 - RemoveLastメソッド
- 23. JS単独でのパーソナリティテスト?
- 24. Satchmo単体テストは単独で実行されます
- 25. Haml for rails、 'haml' gemを単独で、または 'haml-rails'と併用する
- 26. 他のアプリケーションに独自のContentProviderを使用するには?
- 27. pyGTKに独自のロケールを使用するには?
- 28. 要素のセレクタが1行で単独で使用されていますか?
- 29. R関数は単独で機能し、lapply内で使用するとエラーが発生する
- 30. Rustの単独リンクリスト
質問はちょっと混乱します。電子メールを送信するためのRESTful APIを作成しているとします。 RESTful APIを扱っているレールアプリもメールの送信を担当していますか? – patrickmcgraw
あなたは正しいです、申し訳ありません。私は質問を更新し、本当の質問とは関係がないため、RESTに関する部分を取り出しました。 – Andrew
なぜActionMailer :: Baseを拡張したくないのですか?それが働くことが意図されている方法です。 – tybro0103