xamppでgmailを使用するための設定
gmail経由でローカルからメールを送信するための設定です。
xamppのversion -- 1.7.3パッケージ
php.iniの編集 (C:\xampp\php\php.ini)
1100行目当たりの[mail function]を書き換える
以下の様に編集する
SMTP = localhost ↓ SMTP = smtp.gmail.com smtp_port = 25 ↓ smtp_port = 587 ;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" ↓ sendmail_path = "\"C:xampp\sendmail\sendmail.exe\" -t" (コメントを外す) ;mail.log = "C:\xampp\apache\logs\php_mail.log" ↓ mail.log = "C:xampp\apache\logs\php_mail.log" (コメントを外す)
sendmail.iniの編集(C:\xampp\sendmail\sendmail\ini)
以下の内容にファイルを書き換える
# gmail account gmail tls on tls_certcheck off host smtp.gmail.com port 587 from Googleアカウント@gmail.com auth on user Googleアカウント password Googleのパスワード # Set a default account account default : gmail
簡単なサンプルを作ってみた
エラーチェックとかはしていません。動作確認用です。
sample_sendmail.php
<?php function h($str) { return htmlspecialchars($str, ENT_QUOTES); } $name = h($_POST['name']); $title = h($_POST['title']); $content = h($_POST['content']); if ($_REQUEST['cmd'] == "check") { $sendmail = 1; } if ($_REQUEST['cmd'] == "sendmail") { mb_language('ja'); mb_internal_encoding('UTF-8'); //送信先メールアドレス $to = "Googleアカウント@gmail.com"; //タイトル $subject = $title; //内容 $message= $content; //メール送信 $success = mb_send_mail($to, $subject, $message, "From : "); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>sample mail form</title> </head> <body> <h2>Sample Mail Form</h2> <?php if ($success) { ?> <h3>完了ページ</h3> <p>送信が完了しました。<a href="sample_sendmail.php">トップに戻る</a></p> <?php } else if ($sendmail != 1) { ?> <h3>入力ページ</h3> <p>内容を入力してください</p> <?php } else { ?> <h3>確認ページ</h3> <p>以下の内容で送信します</p> <?php } ?> <?php if (!$success) { ?> <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"> <input type="hidden" name="cmd" value="check" /> <table> <tr> <td>Name : </td> <td><input type="text" name="name" value="<?php echo $name ?>" /></td> </tr> <tr> <td>Title : </td> <td><input type="text" name="title" value="<?php echo $title ?>" /></td> </tr> <tr> <td>Content : </td> <td><textarea rows="5" cols="30" name="content"><?php echo $content ?></textarea></td> </tr> </table> <?php if ($sendmail != 1) { ?> <input type="submit" value="確認画面へ" /> <?php } else { ?> <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"> <input type="hidden" name="cmd" value="sendmail" /> <input type="submit" value="メール送信" /> </form> <?php } ?> </form> <?php } ?> </body> </html>