第84回 2023/12/24(日) ## 進め方 https://hackmd.io/i-8Lzl_gRDWEQvMdlOO-Mw?both ## 前回のHackMD https://hackmd.io/JzPOalCcQ8Cuw8Q1Bn7i3w ## ファシリ/ドライバー - ファシリ: hiromisugie - ドライバー: karlley ## PR https://github.com/GennyBoy/souchou-dokushu-rails/pull/56 ## 読んだところ ### From p490 12.1.3 メールの受信 から ### To p495 練習問題 12.1(次は12.2から) ## 練習問題 1. Action Mailerの役割 - 電子メルの送受信を行うためのコンポーネント 2. メーラーとコントローラーの関係について - コントローラー: web情報の送受信を制御 - メーラー: 電子メールの送受信を制御 - 通信プロトコルが異なる(HTTP、POP3)のでコントローラー、メーラーが別々になっている 3. メーラーの起動方法 - webサーバー内のコントローラーのアクションからメーラー起動する 4. メールサーバーの設定をせずに、メール送信のみを確認する方法 - `config.action_mailer.delivery_method = :test` を使う - 実務ではletter opener gemを使うことが多い 5. メール受信に実装に必要な要件(処理の流れ) - SMTPで受信用メールサーバーにメールが届く - 受信用メールサーバー、webサーバー間でPOP3を使ってポーリング処理を行う - webサーバー内メールポーリングジョブが受信用メーラーにメールを転送 - 受信したメールをモデルを介してDBに保存する(または他の処理) ## 学んだこと(分かったこと/わからなかったこと) - hiromisugie - 「ポーリング」とは問い合わせのことで、他のサーバに何か情報が来てないかどうか確認するときとかに使う - メールサーバを自分で立てる、というのは最近はほとんどない。`sendgrid` などのサービスで送受信してもらい、そのAPIを使う、というのが多い。 - sendgridなどは使用料もかかってくるので、大規模サービスとかは自前で立てることも普通にあるらしい - POP3は、プロトコルの1つ。 - メーラーとコントローラーが分かれているのはプロトコルが違うから、というのがなるほどと思いました - `sendgrid`、`leter opner`など、便利なサービスが色々あるようなので実際に使う際にはそういう便利ツールの下調べが重要そうだなと思った(知らずに自前でやろうとしてハマるとか怖い) - 確かに!(メール送信がそうだったかも...) - karlley - メーラー、コントローラーが別々になっているのは通信プロトコルが異なるから - コントローラー: HTTP - メーラー: POP3 - SMTPも通信プロトコル?? - 通信プロトコル! - メールの受信確認はletter opener gemを使うことが多いらしい ## 感想(輪読会自体の改善点などあれば) - hiromisugie - たださんが来てくれて色々教えてくれてありがたや😄 - メールがキリよく終わって良かった - メリークリスマス&良いお年を〜 - karlley - メールの送受信の仕組みへの理解がボヤっとしていたけどたださんが解説してくれて理解できました😄 - 今年最後の輪読会でしたがいつも通りでゆるく楽しくやれたので良かったです! 来年もよろしくお願いします! - genny - Discord と mac と闘ってたら終わってました。よいお年を🎍 - 🎄&🎍