プログラミング メモ memo.txt

一度考えたコードを忘れるのはもったいないので、メモとして残していきます。現在、JavaとC++とVBAを勉強しているので、そこらへん書きます。

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>


とすることで、こんな感じのページを作成できます。
f:id:rkprog:20151021011631p:plain

そして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
f:id:rkprog:20151021013127p:plain

send.php
f:id:rkprog:20151021013032p:plain

text.txt
f:id:rkprog:20151021013231p:plain


こんな感じです。
メールは試してみる時に自分のアドレスを入れてみてくださいね。