そのため、something@whatever.com などのアドレスに電子メールを送信する方法を見つけようとしています。電子メールがそこに送信される代わりに、私が作成したスクリプトに送信または転送されます。電子メールの内容をデータベースに保存します。PHPでそれを行う方法に関する提案はありますか?
ありがとう!
以下は、作業を開始するために使用できるいくつかのコードです。
// set user to check
$strUser = "username";
$strPassword = "password";
// open
$hMail = imap_open ("{mail.yourdomain.com:143/notls}INBOX", "$strUser", "$strPassword");
// get headers
$aHeaders = imap_headers( $hMail );
// get message count
$objMail = imap_mailboxmsginfo( $hMail );
// process messages
for( $idxMsg = 1; $idxMsg <= $objMail->Nmsgs; $idxMsg++ )
{
// get header info
$objHeader = imap_headerinfo( $hMail, $idxMsg );
// get from object array
$aFrom = $objHeader->from;
// process headers
for( $idx = 0; $idx < count($aFrom); $idx++ )
{
// get object
$objData = $aFrom[ $idx ];
// get email from
$strEmailFrom = $objData->mailbox . "@" . $objData->host;
// do some stuff here
}
// delete message
imap_delete( $hMail, $idxMsg );
}
// expunge deleted messages
imap_expunge( $hMail );
// close
imap_close( $hMail );
2 つのオプション:
1) 受信者の電子メール サーバーのシェルにアクセスできる場合は、新しいメッセージを受信するたびに (procmail などを介して) スクリプトを起動するルールを設定できます。
2) メールが通常どおりメールボックスにドロップされるようにし、PHP スクリプトを記述して IMAP 経由でメールボックスにアクセスし、新しいメッセージを取得して処理し、削除します。そして、数分ごとにcronで実行します。