PHPメール自動送信
PHP初心者です。
アドレス入力→送信→仮登録完了→入力していただいたアドレスに本登録用のURL付きメールが届く
という仕組みを作っていますが、送信を押して仮登録用DB保存まではできています。
しかしそのあとメールが送られてきません。
nyuuryoku.phpのページで入力フォーム(name="mailaddress")にアドレスを入力して「送信」をクリックした時の画面です↓
//soushin.php(仮登録完了のページ)
<?php
session_start();
include '../db.php';
if (!isset($_SESSION['join'])) {
header('Location: nyuuryoku.php'); exit();
} else {
//登録処理
$sql = sprintf(
'INSERT INTO karitouroku VALUE( %d,"%s","%s")',
0,
mysql_real_escape_string($_SESSION['join']['mailaddress']),
date('Y-m-d H:i:s'));
$result = mysql_query( $sql,$link )or die(mysql_error());
}
//自動メール送信
$to = $mailaddress;
$subject = '仮登録';
$message = "24時間以内に本登録にお進みください";
$headers = mb_encode_mimeheader(mb_convert_encoding("山田太郎","JIS","EUC-JP"))."<aaa@abc.com>";
mail($to, $subject, $message, $headers);
echo "$mailadr宛に確認メールを送信しました。";
?>
私は$to = $mailaddress;の書き方が間違っているのかと思いましたが、正しい記述がわかりません。
さらに、送られてきたメールのURLをランダムな文字列にしたいとも考えています。
その場合は仮登録用のDBにもフィールドを追加しなければなりませんか?
今のところ仮登録用のDBのフィールドには id・mailaddress・created(登録日)を格納しています。
そしてそのURLにある本登録にアクセスした時、ユーザーが入力したアドレスが表示されている状態にしたいのです。
このソースに書き加えるようにしたいのですが、メールの自動送信・ランダムな文字列生成どなたかわかる方がいらっしゃいましたらご教授ください。
また、本登録にユーザーのアドレスが呼びだされる仕組みもお願いします。
(説明が下手で申し訳ありません)
よろしくお願いします。
お礼
ありがとうございました。
補足
yamabejpさん いつもありがとうございます。 リンクを貼っていただいたページから下記のソースをコピーしてきました。 $to = 'aaa@aa.aa.aa'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: aaa@aa.aa.aa' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); すると、下記のメッセージが出てきます。 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 C:\Apache Group\Apache2\htdocs\*****\*****.php on line 327 初心者で申し訳ありません。 どこで引っかかっているかわかりません。 お教えいただければ幸いです。 どうぞよろしくお願いいたします。