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

以上の設定が終わったらApacheを再起動。
これでxamppのローカル環境で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>