Windows用のPHPメール

エンベロープ付きのPHPメール画像



この記事では、Windowsでのphpスクリプトからのメール送信について説明します。



もちろん、私はアメリカを発見しませんが、この記事が誰かに役立つか、単に時間を節約することを願っています。



PHPプログラマーの観点からは、メールは標準のmail()



関数を使用して送信されます。 そして、ここで多くの初心者開発者が問題を抱えています。 ホストサーバーで完全に動作するスクリプトは、ローカルコンピューターでエラーを生成します。



通常、これらのエラーには次のような説明があります。

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line ......







実際のところ、メール機能それ自体でメールを送信するのではなく 、単にsendmailプログラムを呼び出します。これは、Webサーバーおよびphpインタープリターの配布に含まれませ含まれません)。



Sendmailは、 SMTPサーバーを使用してメールを送信します。



そのため、phpスクリプトは、sendmailとSMTPサーバーのインストールと構成に必要なメールを送信できます



sendmailのWindowsバージョンはここからダウンロードできます



インストールと構成は3段階で実行されます



1)phpがインストールされているのと同じドライブでアーカイブ解凍します 。 たとえば、フォルダーC:\ wamp \ sendmailを作成しました。



2)php.iniファイルに変更加えます。



[mail function]

SMTP =

sendmail_from =

sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"








ご覧のとおり、sendmailのパスを指定するだけで、phpが検索できます。



3) sendmailを構成します。 すべての設定は、sendmail.iniファイル(sendmailがあるフォルダーにあります)にあります。



しかし、 SMTPサーバーに関するいくつかの言葉を設定する前に。 サーバーをコンピューターにインストールする必要はありません。 多くのメールサービスは、サーバーへの無料アクセスを提供します。



以下に、mail.ru SMTPサーバーで動作するようにsendmailを構成する例を示しますが、もちろん、他のものを選択します。



したがって、sendmail.iniを開き、次のパラメーターを設定します。



smtp_server=smtp.mail.ru



; SMTPサーバーのアドレス

smtp_port=25



; SMTPサーバーポート



default_domain=mail.ru



; デフォルトドメイン



error_logfile=error.log



; エラーログが書き込まれるファイル



debug_logfile=debug.log



; デバッグ中の非常に便利なオプション。 sendmailによって実行されるすべての操作がログに記録されます。



auth_username=account_name@mail.ru



; あなたのアカウント名

auth_password=account_password



; あなたのパスワード



; SMTPサーバーでの認証の前にPOP3サーバーでの認証が必要な場合は、次の3つのオプションが使用されます。

pop3_server=pop.mail.ru

pop3_username=account_name@mail.ru

pop3_password=account_password








; MAIL FROMコマンドのパラメーター

force_sender=account_name@mail.ru







hostname=mail.ru







変更を有効にするために、 Webサーバー再起動することを忘れないでください。



メールの動作をテストするには、簡単なスクリプトを作成します。



  01 <html xmlns = "http://www.w3.org/1999/xhtml">
 02 <ヘッド>
 03 <meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" />
 04 <title>シンプルメール</ title>
 05 </ head>
 06 <ボディ>
 07 <?Php
 08 $ addr = $ _POST ['addr'];
 09 $ theme = $ _POST ['テーマ'];
 10 $ text = $ _POST ['text'];
 11 if(isset($ addr)&& isset($ theme)&& isset($ text)
 12 && $ addr!= "" && $ theme!= "" && $ text!= ""){
 13 if(mail($ addr、$ theme、$ text、 "From:vova_33@mail.ru")){
 14 echo "<h3>メッセージ送信</ h3>";
 15}
 16 else {
 17 echo "<h3>メッセージの送信中にエラーが発生しました</ h3>";
 18}
 19}
 20?>
 21 <form action = "mailer.php" method = "post">
 22 <p>
 23 <label for = "addr">メール:</ label>
 24 <input type = "text" name = "addr" id = "addr" size = "30" />
 25 </ p>
 26 <p>
 27 <label for = "theme">メールの件名:</ label>
 28 <input type = "text" name = "theme" id = "theme" size = "30" />
 29 </ p>
 30 <p>
 31 <label for = "text">メッセージテキスト:</ label>
 32 <textarea rows = "10" cols = "20" name = "text" id = "text"> </ textarea>
 33 </ p>
 34 <p>
 35 <input type = "submit" value = "Submit" />
 36 </ p>
 37 </ form>
 38 </ body>
 39 </ html> 




彼は、 住所件名 手紙の内容を入力するための3つのフィールドを持つフォームを作成します。 「送信」ボタンを押すと、同じスクリプトにリクエストが送信されます(21行目)。



データが入力されると、メール機能が呼び出され(13行目)、レターが送信されます。 送信が成功すると、関数はtrueを返し、そうでない場合はfalseを返します。



ご覧のとおり、メールのチンキに複雑なものはありません。



頑張って



出典:私のブログ-www.simplecoding.orgからのクロスポスト



All Articles