18

PHP のメールを使用していくつかのスクリプトをテストする必要があります。これを最終的にローカルで機能させたいと思います。私はMAMPを使用しています。サードパーティのソフトウェアをインストールせずにこれを行う方法はありますか?

私はこれについていくつかの検索を行いましたが、魅力的なものは見つかりませんでした。

ありがとう

4

6 に答える 6

5

特にメールの送信をテストしようとしていますか、それとも残りのコードをテストしていますか?

前者の場合、次のように構成する必要があります。

 SMTP = smtp.example.com
 smtp_port = 25
 sendmail_from = me@example.com

php.ini ファイル (phpinfo() で場所を確認) で、適切な値に置き換えます。

メール送信プロセス以外のコードをテストするには、2 つのインクルード ファイルを作成することをお勧めします。

<?php
// for live usage/mail send testing
function ori_mail()
{
   return call_user_func_array('mail',func_get_args());
}

および他のコードをテストするため

function ori_mail()
{
   file_put_contents('debug_mail_scripts.txt'
       ,date('r') . ':' . var_export(func_get_args(), true)
       , FILE_APPEND);
}

そして、関連するものをテストに含めます。

SMTP サーバーとの統合のテスト、およびコードの配信可能性のテストはかなり複雑ですが、PHP のテストとは別に行う必要があることに注意してください。

C.

于 2010-02-08T13:21:00.593 に答える
1

私がしていることは、phpmailerクラス(警告:恐ろしいウェブサイト!)を使用して、アカウントを持っている実際のSMTPサーバーを指定することです。したがって、mail()は使用しませんが、smtpを使用します。このように、ローカルサーバーにいるのか実サーバーにいるのかは関係ありません。ただし、そのSMTPメールサーバーへのSMTPアクセスが機能している必要があります。実際に本番メールサーバー(アプリケーションが稼働するときに使用されるサーバー)を使用するのが最善です。このようにして、メールサーバーが返信先フィールドなどを台無しにしていることに気付いたときに、ぎりぎりの驚きはありません。

于 2009-08-04T10:16:12.963 に答える
1

数か月前、ローカル マシンで電子メール通知の自動送信を含むアプリケーションを開発しているときに、同様の問題が発生しました。Sendmail を OSX にインストールするのにかなりの時間を費やし、最終的には正しく動作させることができませんでした..

私のアプローチは、php のネイティブ メール機能の一時的な代替としてPEAR メールを使用することでした。基本的に、 send-mailという関数を定義でき(以下のコードを参照)、アプリをサーバーにデプロイすると、その関数の呼び出しを mail() の呼び出しに置き換えることができます。

     <?php
     require_once 'Mail.php';
     function send_mail($recipient,$subject,$body){

            $host = "yourmailserver.net"; 
            $username = "you@yourmailserver.net";
            $password = "password";
            $port = 25; 

            $headers = array ('From' => "Your agent <noreply@yoursite.net>",
              'To' => $recipient,
              'Subject' => $subject
            );  

            $smtp = Mail::factory(
             'smtp',
              array ('host' => $host,
                'auth' => true,
                'port' => $port,
                'username' => $username,
                'password' => $password)
            );  
            $smtp->send($recipient, $headers, $body);
       }
    ?>    
于 2009-08-04T09:05:00.610 に答える
0

gmail アカウントを使用して、gmail の SMTP サーバー経由でテスト メールを送信できます。

これを行うには、phpmailer クラス ( http://phpmailer.worxware.com/ ) を使用できます。このクラスをダウンロードすると、examples/ フォルダに基本的な gmail の例があります。

于 2010-03-07T00:12:43.007 に答える