問題タブ [mailman-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
462 参照

ruby - Mailmanアプリをテストするにはどうすればよいですか

受信メールの処理と再送信を目的としたアプリケーションの仕様を作成しようとしています。Mailmanアプリで構築されています。その方法についての良い例は見つかりませんでした。私が実際に試しているのは、(Mail gemを使用して)電子メールを作成し、Mailmanで処理することです。ただし、テストにstdingを使用するオプションしかありません。

それで、mailmanアプリをテストするために書かれた仕様の例はありますか?

0 投票する
2 に答える
881 参照

ruby-on-rails - メールの受信と処理: Heroku、Sendgrid、場合によっては Mailman

私のアプリはユーザーごとに一意の電子メールを作成し、ユーザーは処理のためにそのアドレスに電子メールを送信します。Sendgrid を使用して、受信メールを自分のドメイン (Heroku でホストされている) のアドレスにパイプしました。

電子メール アドレスはランダムに生成されるため、TO フィールドを使用してユーザーを特定します。

Mailmanなどの外部スクリプトを使用して実験しましたが、Heroku でホストされているため、このプロセスを継続するにはワーカーをフルタイムで実行する必要があります。このテストアプリでは、現時点ではそれを実際に探していません。

それは POST リクエストとして処理を残します。receive_emails で POST ハッシュ (params["subject"] など) にアクセスできます。

これは私が立ち往生するところです

POST パラメータから生データを処理することをお勧めしますか、それとも Mailman や ActionMailer などを使用してメールを処理できますか?

0 投票する
1 に答える
315 参照

ruby-on-rails - mailman gemを使用して電子メールメッセージの送信日時を取得するにはどうすればよいですか?

メールアカウントから受信メッセージを取得するスクリプトを作成しました。正規表現で解析せずにメッセージ送信日時を取得する方法はありますmessage.headerか?

0 投票する
0 に答える
257 参照

ruby-on-rails - Rails Action Mailer - フッター情報を取り除く

ユーザーは、ユーザーのリストに送信された電子メールを受信できます。いつでもこのリスティングから退会できるという警告が表示されます。ユーザーは全員に返信できます。これはサーバーに送り返され、他の全員に再送信されます。ただし、返信にはフッターがまだ残っています。

ActionMailer を使用してメールを送信しています。それらはマルチパート HTML メールです。

この情報を取り除く最も簡単な方法は何ですか? 理想的には、返信メッセージのどの部分もメッセージ部分に組み込まれないようにしたいと思います。

ここに画像の説明を入力

編集:詳細情報

これをサポート チケットと考えてください。すでにチケットに含まれている一連の返信ではなく、返信情報を含む新しいレコードを作成したいだけです。たとえば、送信された最初の電子メールに「助けが必要です!」が含まれている場合、2 番目の返信には「何を助けますか?」が含まれます。3 番目の返信は「わかりません... 退屈です」です。

チケット モデルには 3 つのレコードがあります。

  1. レコード 1

    ID = 1

    message = "助けが必要です!"

  2. レコード 2

    ID = 2

    message = "何を手伝いますか?"

  3. レコード 3

    ID = 3

    message = "わからない...退屈だ"

編集

メッセージの一部として a を使用することで、内容を取り除くことができました。しかし、私が今抱えている問題は以下のとおりです。さまざまな電子メール クライアントが独自の返信行を追加します。たとえば、Outlook はこれを追加します。

ここに画像の説明を入力

Gmail はこれを追加します

ここに画像の説明を入力

これらの項目は、blockquote の新しいストリッピングに含まれるため、返信のこの部分を解析して、ジャンク データでチケット レコードが文字化けするのを防ぐにはどうすればよいでしょうか。

0 投票する
2 に答える
1099 参照

ruby-on-rails - Mailman はメールを複数回保存します

Rails プロジェクトに mailman gem を統合しました。gmail からメールを正常に取得します。私のアプリには、メールのモデル メッセージがあります。電子メールはメッセージ モデルとして適切に保存されます。

問題は、メールが複数回保存されることがあり、パターンを認識できないことです。一部のメールは 1 回保存され、一部は 2 回保存され、一部は 3 回保存されます。

しかし、私のコードで失敗を見つけることができません。

これが私のmailman_serverスクリプトです:

スクリプト/mailman_server

メールは Message クラス内で処理されます。

このスクリプトで mailman_server をデーモン化しました:

スクリプト/mailman_daemon

capistrano でデプロイします。

これは、mailman_server の停止、開始、および再起動を担当する部分です。

スクリプト/deploy.rb

展開中に mailman サーバーの複数のインスタンスがほぼ同時に開始され、各インスタンスがほぼ同時にポーリングされる可能性はありますか? 2 番目と 3 番目のインスタンスは、最初のインスタンスが電子メールを既読としてマークし、電子メールをポーリングして処理する前にプールしますか?

アップデート 30.01。

ポーリング間隔を 60 秒に設定しました。しかし、それは何も変わりません。

mailman pid ファイルが格納されているフォルダーを確認しました。mailman pid ファイルは 1 つだけです。したがって、実行中の mailman サーバーは 1 つだけです。ログファイルを確認したところ、メッセージが複数回取得されていることがわかりました。

私には、問題は間違いなくメールマン サーバー コードにあるように思えます。

アップデート 31.1。

私には、それは私の生産機械に関係があるようです。本番マシンとまったく同じ構成で開発中にこれをテストしている場合(今朝、ローカルデータベースをsqliteからmysqlに変更してテストしました)、重複はありません。おそらく私のコードはすべて問題ありませんが、本番マシンに問題があります。これに対する解決策を見つけられるかどうか、ホストに尋ねます。これを修正するには、Ariejan の提案に従います。

解決策: 問題が見つかりました。tmp ディレクトリがすべてのリリース間で共有されているマシンにデプロイします。mailman_daemon の pid ファイルを保存するパスを定義するのを忘れていました。そのため、/tmp/pids ディレクトリではなくスクリプト ディレクトリに保存されました。このため、新しいデプロイ後に古い mailman_daemon を停止できませんでした。それは私のメールアカウントをポーリングしていた作業中のmailman_daemonsの軍隊につながりました...これらすべてのプロセスを強制終了した後、すべてうまくいきました! もう重複はありません!

0 投票する
1 に答える
221 参照

ruby-on-rails - AWS Elastic Beanstalk の Always-On Mailman レシーバー

mailman-rails gem を使用して Gmail の受信トレイに新しいメッセージがないかチェックし、読んだ後にそれらを取り込む Rails アプリを作成しました。mailman-rails を使用して、常にライブの mailman リスナーが受信トレイで新しいメッセージを監視しています。

AWS でホストされている本番サーバーにライブでプッシュする場合を除いて、すべての点で問題なく動作しますが、mailman サーバーは 24 ~ 36 時間以上オンになることはありません。ログをチェックしていますが、mailman リスナーがシャットダウンする原因となった重大なエラーがログに記録されていません。

または、サーバーを定期的に再起動させる AWS EB の弾力的な性質について、明らかにメールマンをシャットダウンする何かがありますか?

現在、私は毎回手動でサーバーに SSH 接続して、rake mailman:start を使用して mailman で実行しています。代わりに何をすべきですか?

または、mailman を 5 時間ごとに手動で再起動して常に有効にするスクリプトを作成するにはどうすればよいでしょうか?

0 投票する
0 に答える
137 参照

ruby-on-rails-4 - Rails 4 で mailman gem を使用して複数のアカウントからメールを受信する

Railsでmailman gemを使って複数のアカウントにアクセスしたいです。Rails 4 の mailman の単一プロセスで複数のアカウントを開く方法はありますか?