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