5

私は次のことをする必要があります。

さまざまなクライアントの受信メールを処理して処理し、メールアドレスに応じて何かを実行するプログラムを作成する必要があります (データベースへの追加、返信など)。

これを少し難しくしているのは、電子メール アドレスが静的ではなく動的であることです。例えば。メールはこのようなものになります。 dynamic-email1@dynamic-subdomain1.domain.com . 電子メールは、この例では「dynamic-subdomain1」の動的サブドメインを使用してクライアントごとにグループ化されます。クライアントには、割り当てられた独自のサブドメインがあります。各クライアントは、サブドメインの下に独自の電子メール アドレスを作成し、その電子メールにイベントを割り当てることができます。これらの電子メール アドレスとサブドメインは、新しいものを追加したり、古いものを削除したりして、常に変更される可能性があります。

たとえば、「dynamic-email1@dynamic-subdomain1.domain.com」という電子メールが届いた場合、データベースを調べて、「dynamic-subdomain1」サブドメインが割り当てられているクライアントを見つけてから、どのイベントが「dynamic-email1」の電子メール アドレスにマップされているかを確認し、そのイベントを実行します。既にイベント処理を行っていますが、電子メール アドレスをイベントにマップする方法がわかりません。

電子メール アドレスは動的であるため、ファイル ベースの構成ファイルでこれを処理するのは非常に面倒です。代わりにデータベースを検索するとよいでしょう。私はいくつかの調査を行い、似たようなことを行うプロジェクトをいくつか見つけましたが、正確ではありません. 私が見つけた最も近いものは、Zed Shaw の Lamson プロジェクトです: http://lamsonproject.org

より多くの背景:

  • 現在、python、django、linux、mysql、memcached を使用しています。

質問:

  1. 私がやりたいことをするためにラムソンを使った人はいますか?
  2. おそらくpython以外の別の言語で、似たようなことをする他のプロジェクトはありますか?
  3. このような処理を行うには、DNS MX レコードをどのように設定すればよいですか?

ご協力いただきありがとうございます。

更新: Google アプリ エンジンの提案についてさらに調査を行ったところ、うまくいくかもしれませんが、あまりにも多くのことを変更する必要があり、あまりにも多くの可動部分が追加されます。また、キャッチオールメールフォワーダーが必要ですが、安価なものを知っている人はいますか? すべての電子メールを処理するシステムにデプロイすることを好みます。ポート 25 でリッスンする postfix を使用し、リクエストを lamson に転送しているようです。これは理にかなっているように思えます。試してみて、どうなるか見てみましょう。結果を更新します。

更新 2 : さらに調査を行ったところ、このようなことを行っている Web サイトがいくつか見つかったので、次にそれらを調べます。

http://mailgun.net

http://www.emailyak.com

4

2 に答える 2

1

動的な電子メール アドレスを使用していくつかのプロジェクトでいくつかの作業を行いましたが、動的サブドメインを同時に使用したことはありません。あなたの質問に対する私の考え:

  1. 私はラムソンを使ったことがないので、それについてコメントすることはできません.

  2. 私は通常、App Engine の APIを使用して着信メッセージを受信および処理していますが、これは非常にうまく機能します。受信した各メッセージを、、、、、などのフィールドを使用して独自のサーバーで簡単に基本的なPOSTリクエストに変換し、標準の django でそれらを処理できます。ToFromSubjectMessage

    GAE メールの欠点の 1 つは を使用する必要があることですが、キャッチオール メール フォワーダーを設定してすべてを に*@yourappname.appspotmail.com転送することで、これを回避できます。これにより、カスタム ドメインでメッセージを受信し、GAE で処理できるようになります。*@yourdomain.comsecretaddress@yourappname.appspotmail.com

    GAE のもう 1 つの問題/利点は、独自のサーバーではなく Google のサーバーを使用することです (少なくとも電子メールの場合)。

  3. サブドメインの問題については、レコードにワイルドカード DNSを設定してみてくださいMX。これにより、(理論的には) サブドメインに送信されたすべてのメールが同じサーバーに送信されます。これにより、すべてのサブドメインで電子メールを受信できるようになります (良くも悪くも - スパムに注意してください!)。

于 2011-03-29T19:04:58.337 に答える
0

ラムソンの場合、次のような簡単なことを試しましたか:

@route("(address)@(subdomain).(host)", address=".+", subdomain="[^\.]+")
def START(message, address=None, subdomain=None, host=None):
    ....
于 2012-09-25T19:27:53.927 に答える