【プログラミング学習】レンタルサーバーを使用してPHPでメール送信を行う方法

レンタルサーバーを使用してお問い合わせフォームから、メール送信させる機能をphpで作成したときの備忘録を残しておきます。以下の3つをしていきます。

  • フォームの作成(contact.php)
  • phpファイルの作成(mail.php)
  • php.iniファイルの配置
スポンサーリンク

フォームの作成(contact.php)

mail.phpを呼び出す処理と、入力フォームをつくって、$_POST変数に入れる処理を書きます。

<?php
if(!empty($_POST)){

$from = $_POST[‘mail’];
$name = $_POST[‘name’];
$comment = $_POST[‘comment’];

$msg = ”;

include(‘mail.php’);
}
?>

<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>mail_test</title>
</head>
<body>

<p><?php if(!empty($msg))echo $msg; ?></p>
<form method=”post”>
<label>お名前
<input type=”text” name=”name” value=”<?php if(!empty($_POST[‘name’])) echo $_POST[‘name’];?>”>
</label>

<label>メール
<input type=”text” name=”mail” value=”<?php if(!empty($_POST[‘mail’])) echo $_POST[‘mail’];?>”>
</label>

<label>内容
<textarea cols=”50″ rows=”10″ name=”comment” value=”<?php if(!empty($_POST[‘comment’])) echo $_POST[‘comment’];?>”></textarea>
</label>

<input type=”submit” name=”submit” value=”送信”>
</form>

</body>
</html>

↑は簡易サンプルのため、フォームはお好きに作ってください。

phpファイルの作成(mail.php)

contact.phpの入力フォームで送られた変数を使って、以下処理を記述します。

<?php

mb_language(“Japanese”);
mb_internal_encoding(“UTF-8”);

$to = ‘サイト管理者のメールアドレス’;

$result = mb_send_mail($to,$name,$comment,$from);

if($result){
unset($_POST);
$msg = ‘お問い合わせが完了しました。’;
}else{
$msg = ‘お問い合わせ出来ません。管理者に問い合わせてください。’;
}

?>

mb_send_mail(送信先, 題名, 本文, ヘッダ)なので、送信先にはメールのお問い合わせの受信元になる管理者メールアドレスを設定します。ヘッダにはフォームのメール項目(お問い合わせした人のメールアドレス)が入るようにしています。
最後に、送信処理がうまくいった場合true、失敗した場合falseで判定して、メッセージを出力しています。

php.iniファイルの配置

レンタルサーバーの管理画面にログインして、php.iniファイルを探します。php.iniファイルの内容をコピーして、メモ帳に貼り付けて、以下箇所を修正します。

(before)
;mbstring.encoding_translation = OFF
;mbstring.internal_encoding =

(after)
mbstring.encoding_translation = OFF
mbstring.internal_encoding = utf-8

修正後、index.htmlなどを配置しているフォルダにphp.iniファイルを配置します。

これでお問い合わせページから問い合わせをすると、無事がメール送信されました。 php.iniの設定に時間がかかりましたが、修正箇所はとてもシンプルでした。 php.iniファイルについては、各レンタルサーバーの情報を調べてみると、見つかると思います。 contact.phpおよびmail.phpは簡単に書きましたが、実際はバリデーションチェック等の処理を書いた方がいいと思います。

ここまで読んでくださりありがとうございます。ではでは。

コメント

タイトルとURLをコピーしました