0

ライブラリ/クラス/コードスニペットなどはありますか。それは私がphpで直接メールを受信することを可能にしますか?

そのため、他のプロセスで追加のサーバーを実行してから、すでに実行中のphp-processにメールを送信する必要がありません。

私はしばらく探していましたが、グーグルでの「php」と「mail」または「mta」/「smtp」の結果は、主にメールの送信、またはpop3またはimapを使用した取得に焦点を当てています...

[編集]

私がやろうとしているのは、メッセージをIRCチャネルに転送することです。したがって、IRCボット(PHP)が実行されていない場合、メールを失うことは大したことではありません。ただし、メールを受信して​​からIRCに投稿するまでの待ち時間は短くなります。

4

5 に答える 5

2

PHP で競合する SMTP サーバーを見たことがないので、驚くことではありません。私はあなたがその道を行きたいとは思わない。これを行うには、他に 2 つの方法が考えられます。

  1. 既存の SMTP サーバーで procmail (または同様のもの) を使用し、メッセージを PHP スクリプトに転送するルールを作成します。実行するのは非常に簡単で、メッセージを受信した瞬間にスクリプトを起動します。

  2. メッセージを既存のメールボックスに配信してから、PHP スクリプトで (POP または IMAP 経由で) 新しいメッセージを継続的にポーリングします。新しいメッセージが表示されたら、それを IRC に渡して削除します。メッセージが表示されるまでにかかる時間は、受信トレイをポーリングする頻度によって異なります。

于 2011-05-02T19:25:24.690 に答える
1

独自の SMTP サーバーを作成するのは大変な作業です。このルートには行かないでください。すでに完了した作業を複製することで、信じられないほどの時間を無駄にすることになります。「大きな」SMTP サーバー (postfix、exim、sendmail など) の 1 つを選択し、それを使用します。

ポート 25 をリッスンする小さなスクリプトをセットアップするだけでうまくいくとは思わないでください。SMTP サーバーは信じられないほど複雑な獣であり、そのポート 25 ソケットをセットアップするメカニズムは、作業の 0.000000000000000000000000000000001% 未満しか占めていない可能性があります。(この数字は完全に真実です。私はそれが何を感じているかを自分の直感に尋ねたところ、それが出てきました)。

于 2011-05-02T19:32:42.783 に答える
1

MTA (Mail Transport Agent) は、メールを別の場所に移動するために使用されるアプリケーション (つまり、sendmail、exim) です。私の知る限り、PHP でコーディングされた MTA はありません。PHP は、メール転送を処理するクラスとスクリプトを提供しますが、それでも既存の MTA を介して処理します。

探しているものを達成するために、特定の PHP スクリプトを介してメールを渡すように MTA を構成できるはずです。

于 2011-05-02T19:24:50.790 に答える
1

MTA として機能する独自の SMTP サーバーを作成するのは大変な作業です。http://cloudmailin.comをご覧ください。CloudMailin を使用すると、受信メールを HTTP ポストとして受信でき、メールを PHP アプリに直接送信する MTA として機能します。その後、PHP アプリは電子メールを処理し、IRC チャネルに送信できます。

于 2011-05-03T07:10:49.020 に答える
0

これを試してください: http://www.php.net/manual/en/refs.remote.mail.php

10秒のグーグル。SMTP はメール リレー用ですが、SMTP メール リレーを実行するすべてのボックスが Unix の伝統を受け継いでいるため、メール クライアントがメールを送信するためのデファクト プロトコルとなっています。

POP3 と IMAP は、メール クライアントのメールへのアクセスを提供します。

于 2011-05-02T19:20:45.697 に答える