PHPでのメール送信について説明する機会があったので、最小限のサンプルをここにも書いておきます。
さくらのレンタルサーバ ライトプラン(PHP7.4)で動作確認しました。
対象の読者
- 「お問合せ」画面の仕組みを作りたい(サイトに訪れた人が「お問合せ」画面で入力し、「送信」ボタンを押すと管理人にメールが届く)
- PHPが動くサーバがある
mb_send_mail とは
PHPに最初から備わっている「メール送信ができる関数」。
詳しくはリファレンスを参照。
確認してみる
メール送信の部分だけを確認するため、余分なところは省いていますが、このままコピペでも動きます。
(さくらのレンタルサーバであればwwwフォルダに以下の2ファイルを作成して、 http://ドメイン名.sakura.ne.jp/test.html で確認できます。)
test.html
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<form action="mail.php" method="POST">
<input name="name">
<input name="contact">
<textarea name="text"></textarea>
<input type="submit">
</form>
mail.php
<?php
mb_send_mail(
"postmaster@XXXXXXXX.sakura.ne.jp",
"ポートフォリオ問合せ",
"ポートフォリオの問合せ画面に入力がありました。
お名前: {$_POST["name"]}
ご連絡先:{$_POST["contact"]}
内容:{$_POST["text"]}
",
"From: postmaster@XXXXXXXX.sakura.ne.jp
Return-Path: postmaster@XXXXXXXX.sakura.ne.jp
Content-Type: text/plain;charset=UTF-8");
?>
お問い合わせありがとうございます。<br>
お問い合わせを受け付けました。<br>
内容を確認してお返事いたしますので、お待ちくださいませ。<br>
<br>
<a href="<?=$_SERVER["HTTP_REFERER"]?>">戻る</a>
※ メールアドレスのXXXXXXXXと、htmlの各のname="XXXX"と、phpの$_POST["XXXX"]は適宜修正しましょう。
のaction="mail.php"は、htmlとphpが別のフォルダにある場合は修正しましょう。以上です。