ラックアプリケーションで受信メールを処理する
彼は自分のアプリで受信メールを処理することを望んでいます 。 Basecampと同じように。
問題ありません。多くのサービスがPOSTでアプリにメールを送信します。簡単なはずです。でしょ?
いいえ。
各サービスは独自の形式を使用します。 解析された電子メールを送信するものもあれば、生で送信するものもあります。認証署名を送信するものもあります。しない人もいます。
この部分をスキップして、標準の(よく知られている)ルビーオブジェクトを操作できたら素晴らしいと思いませんか?
コードを書き直さずにベンダーを変更できたら素晴らしいと思いませんか?
Incoming!を使用している場合は、できます。
TL; DR
入ってくる! Rack::Request
を受け取ります Mail::Message
を提供します
着信はこれらの優れたサービスをサポートします:
-
SendGrid
-
メールガン
-
消印
-
CloudMailin
-
自分で実行している実際のメールサーバー(すごい)
何よりも、拡張は簡単です。そのため、まだ存在していないサービスとはすでに互換性があります。 (実際にはそうではありませんが、一種です)
では、なぜ受信メールが必要なのですか?
メールを送信して何かをするオプションを人々に与えると、彼らはそれを行う可能性が高くなります。
Incomingを構築しました! honeybadger.ioの場合。エラーに関する議論を合理化する方法が必要でした。たとえば、通知に返信するだけでエラーにコメントできます。私たちのコメントのほとんどはこのように来ているので、私たちはそれを大きな勝利と考えています。
この記事を書いている時点で、この宝石はHoneybadgerチームによって約6か月間社内で使用されています。
コードを見せてください!
CloudMailinを使用した簡単な例を次に示します。
`# First, you define an email receiver class
class EmailReceiver < Incoming::Strategies::CloudMailin
def receive(mail)
puts %(Got message from #{mail.to.first} with subject "#{mail.subject}")
end
end
# Then you feed it a Rack::Request object. And you're done.
req = Rack::Request.new(env)
result = EmailReceiver.receive(req) # => Got message from [email protected] with subject "hello world"
`
詳細については、Readmeをご覧ください。
しかし、Railsではどのように使用しますか?
着信を使用する!レールでの使用も同様に簡単です。サンプルアプリを作成しましょう。
要件:私はテキストメッセージが嫌いです。それは私のちょっとしたことです。ただし、婚約者がクラスにいる間は、婚約者にラブノートを送信できるようにする必要があります。
明らかに、答えは電子メールからSMSへのブリッジを構築することです!
まず、メール受信者を設定します:
`# app/email_receivers/incoming.rb
class EmailToSmsReceiver < Incoming::Strategies::Postmark
def receive(mail)
send_sms([mail.subject, mail.body].join(": "))
end
private
def send_sms(message)
# Insert twilio magic here
end
end
`
次に、リクエストをレシーバーにパイプするコントローラーを追加します:
`# app/controllers/emails_controller.rb
class EmailsController < ActionController::Base
def create
if EmailToSmsReceiver.receive(request)
render :json => { :status => 'ok' }
else
render :json => { :status => 'rejected' }, :status => 403
end
end
end
`
そうそう、ルートが必要です:
`# config/routes.rb
Rails.application.routes.draw do
post '/emails' => 'emails#create'
end
`
それだけです。
どのように着信しますか?他の宝石と比較しますか?
このスペースには他にも宝石があります。最も顕著なのはThoughtbotのGriddlerです。
ただし、着信する場所がいくつかあります。際立っている。それ:
-
複数のメールサービスをサポート
-
任意のラックアプリケーションで動作します 、レールだけではありません
-
標準の
Mail::Message
をお渡しします -
ユースケースについて推測しません
私のためのミーム写真はありますか?
はい、そうです。
-
EmailJS を使用して Vue.js アプリケーションからメールを送信する方法
数日前、私は単純な Vue プロジェクトに取り組むことに決め、作成した連絡先からメールを送信する必要がありました。誰かが私の連絡先フォームに記入するたびに、自動化された電子メールを受け取りたいと思っていました。 そこで私は検索を開始し、EmailJs にたどり着きました。この記事を書くことにしたのは、彼らのドキュメントが素晴らしく、とても使いやすいと感じたからです。また、それが誰かの助けになることを願っています:) 始めましょう! この記事では、EmailJS を使用して Vuejs アプリケーションからメールを送信する方法を紹介します。 続行する前に、Vue CLI を使用してミニ
-
iPhone または Android の写真で「深度効果」を取得する方法
iPhone 7 はポートレート モードでも見事な写真を撮ることができます。ポートレート モードの写真をクリックすると、被写界深度効果が追加されます。もちろん、この種の効果で写真をクリックするには、iPhone7 または DSLR または同様のカメラが必要です。しかし、良いニュースは、この効果をスマートフォンの通常の画像に追加できることです。さらに先に進む前に、被写界深度とは正確には何なのかを詳しく理解しましょう。 写真における被写界深度とは、前にあるものはくっきりと鮮明に写り、背景にあるものはぼやけることを意味します。与えられた画像ではっきりと理解できます。 そのため、携帯電話で撮影