2009-03-11 9 views
1

私はWindows Vista OSを使用しています。 PHP、データベースとしてのMySQL、Apache WebサーバーPHPを使用してメールを送信するには?

私のサイトに参加したい方に通知したいと思います。 問題は、[送信]をクリックしたときです。ユーザーの電子メールアドレスには何も送信しません。

あなたはこれに最善の解決策だと思いますか?

<?php 
$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
    echo("<p>Message successfully sent!</p>"); 
} else { 
    echo("<p>Message delivery failed...</p>"); 
} 
?> 
+0

これに使用するコードを表示できますか? –

+0

これをローカルでテストする場合は、ローカルのsmtp設定が設定されていることを確認してください(serioys samの答えを確認してください) – karlipoppins

答えて

2

ポートでリッスン25

サンプルコードは、以下の個別のSMTPサーバーへのアクセスを必要と梨「メール」クラスを使用します:

function sendmail($from, $to, $subject, $message, $headers) 
{ 
    if (is_array($to)) { 
      $recipients = implode(', ', $to); 
    } else { 
     $recipients = $to; 
    } 

    $errorlevel = error_reporting(); 
    $headers["From"] = $from; 
    $headers["To"] = $to; 
    $headers["Subject"] = $subject; 

    $params = array(); 
    $params["host"] = "localhost"; 
    $params["port"] = "25"; 
    $params["auth"] = false; 

    error_reporting($errorlevel & ~E_WARNING); 

    $mail_object =& Mail::factory("smtp", $params); 
    $res = $mail_object->send($recipients, $headers, $message); 

    error_reporting($errorlevel); 

    return $res; 
} 

注意を:これは古いコードであります - 私は今、なぜ私はE_WARNINGをマスクしなければならなかったか思い出しません。

0

"How to Send Email from a PHP Script"をチェックアウトしてください。メール機能を使用してメールを送信し、さらにローカルおよびリモートのSMTP設定用の設定も行います。

3

あなたは、いくつかのオプションがあります。

  • mail functionであっ建てられていますが、それはいくつかのMTAは、マシン上で実行されている必要があり、認証をサポートしていない、とあなたは、添付ファイルを送信するために努力する必要があります
  • パッケージがあります。
  • これは私が過去数年間使っていたもので、本当にうまくいきます。それは(単純なコールを含め)あなたのプロジェクトに含めることが非常にシンプルで簡単ですので、それのように、まだZend Frameworkの強力な
+0

Windows Vista OSでPHPmailerが動作しますか? –

+1

私はWindowsとLinuxの両方で試してみました。 –

3

Zend_Mailは、Eメールを送信すると非常にきちんとした仕事をしていません!あなたはZend Framework全体を使う必要はなく、ただZend_Mailを使うことができます!

0

PHP経由でメールを送信する方法はたくさんあります。フレームワークを使用していない場合は、内部のmail()関数を使用するのが最初の方法です。 Zend FrameworkのZend_Mailコンポーネントを使用することをお勧めします。私はそれを使って作業しました。とてもうまく動作し、PHPを使用して電子メールを送信するための素晴らしいオブジェクト指向の方法を提供します。 mail()機能を使用する理由がある場合は、これらを知る必要があると思います。 PHP mail()はメールを送信しません。他のツールを使用して電子メールを送信します。 Unixシステムでアプリケーションを実行している場合、mail()は、一般にほとんどのUnixライクなシステムにインストールされているsendmailプログラムを使用して電子メールを送信しようとします。 Windowsプラットフォームでは、sendmailがインストールされていないため、PHPはSMTPサーバーを使用して電子メールの送信を試みます。したがって、もしあなたがこのSMTPサーバがどこにあるのかをPHPに伝え、SMTPサーバのユーザ名/パスワードがあればそれを提供するべきです。 PHP設定ファイルphp.iniを編集することでこれを行うことができます。このファイルは、実行時にPHPが使用するテキストベースの設定ファイルです。 あなたphp.iniファイルを検索し、このファイルにこれらの値を変更します。あなたのphp.iniファイルがどこにあるか知っている、シンプルなPHPファイルを作成し、info.phpのように、その中にこのコードを入れていない場合は

SMTP = localhost 
smtp_port = 25 
sendmail_from = [email protected] 

<?php 
phpinfo(); 
?> 

ページを実行し、.iniを検索してください。 php.iniファイルがどこにあるか分かりました。

0

メールサーバーをインストールしていないようです。 ApacheやPHPはメールを送信しません。 phpはそのための関数を登録していますが、内部では実際の送信を行うためにメールsmtpサーバを設定する必要があります。

Check this post

0

私はswiftmailerライブラリを使用することをお勧めします。このプロジェクトは非常に優れたドキュメントを持ち、使いやすいです。デフォルトのPHPのmail()関数を使用することにはいくつかの利点があります。

http://swiftmailer.org/

関連する問題