phpからファイルに追記。メールを送信する方法。
個人的にシフト作成ツールとしてphpを使ったりするので、メモとして
index.phpとsend.phpを作成
ここでやることとしては
- 入力を受け付けるindex.phpを作成
- index.phpに入力フォームを作成
- 入力されたデータをpostする先のsend.phpを作成
- send.phpでファイルに記入する仕組みを作成
- ファイルから読み込んで内容をメールで送信
ちなみに、このメールの宛先を自分にすることで、僕は誰がシフトの申請を出したかが分かるようにしています。
index.php
<?php ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <form action="send.php" method="post"> name:<input type="text" name="name"><br> message:<input type="text" name="message"><br> <button type="submit">submit</button> </form> </body> </html>
とすることで、こんな感じのページを作成できます。
そしてsend.phpを作っていきます
send.php
<?php $dataFile = 'text.txt'; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $message = $_POST['message']; $write = $name."さんからメッセージです。\n".$message; $fp = fopen($dataFile,'a'); fwrite($fp, $write); fclose($fp); mb_language("Japanese"); mb_internal_encoding("UTF-8"); $textdata = file_get_contents('text.txt'); $sendmail = mb_send_mail("example@example.jp", "test", $textdata, "From: example.com"); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>send</title> </head> <body> Sended! </body> </html>
とすれば、送信した際にSended!と書いてあるページに飛びます。
メールの送信のメソッドは返り値がbooleanなので
送信に失敗した場合falseが帰ります。
それを利用して
送信しました!と送信できませんでした。
を条件分岐してあげるといいですね。
実際、自分もそうしています。$sendmailはtrue or falseになっているので。
この先は大体の実行結果です。
index.php
send.php
text.txt
こんな感じです。
メールは試してみる時に自分のアドレスを入れてみてくださいね。