この記事では、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からのクロスポスト 。