ブラウザから簡単にメール送信するスクリプト


PCからiPhoneにURLを送信するアプリとかいうのを見つけて、
それは要らないだろうと思ったので、自分が代わりに使ってる物をさらしてみる。


基本的には、普段使っているMacMacbook ProiPhoneMobileMeでブックマーク共有をしており、
どれか一つでブックマークをしたら、すぐに他の環境のブックマークにも追加されるようになってる。

デスクトップのマックで料理のレシピを決めてブックマークし、キッチンにiPhoneを持って行ってブックマークから同じサイトを開いて材料の確認をすることができる。
これが地味に便利。



ブックマークをするまでもないけど、後で別の環境で読みたい、なんてことがよくある。
朝、Twitterに流れてきたURLが忙しくて読み切れないときとか、会社で読みにくいえっちっぽい広告がごてごて貼ってあるサイトを自宅で見たいときなどだ。

そういうときは、ブラウザで開いてるURLを一発で送信するブックマークレットスクリプトを使って、URLをiPhoneや会社のメールに送信している。


同じスクリプトを、ブックマークレットではなく普通にWEBで開くと、テキストエリアに文章を書いてメールできるようになっているので、ちょっとしたメモを送りたいときに便利だ。
例えば、朝、Twitterに流れてきた単語をぐぐって調べたいが時間がないときなどだ。


なんのこっちゃないほんとたいしたことないスクリプトだが(エラー処理すらない!)、phpが使えるWEBサーバを用意しなければならない。ApachePHPさえ立てればネットにつながったローカルでもOK。
一度設定すると便利なので手放せない。


スクリプト(mail.php)のソース

<HTML>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<head>
<title>My Mail Form</title>
</head>
<body>
<?php

mb_language('ja');
mb_internal_encoding("UTF-8");

$body = isset($_GET['body']) ? $_GET['body'] : ( isset($_POST['body']) ? $_POST['body'] : "");
$body = h($body);
$subject = isset($_GET['subject']) ? $_GET['subject'] : ( isset($_POST['subject']) ? $_POST['subject'] : "");
$subject = h($subject);

$submit = isset($_GET['submit']) ? $_GET['submit'] : ( isset($_POST['submit']) ? $_POST['submit'] : "");
$submit = h($submit);

$password = isset($_GET['password']) ? $_GET['password'] : ( isset($_POST['password']) ? $_POST['password'] : "");
$password = h($password);

if ($submit) { 
	//メール送信実行
	
//	if(h($_POST['pass']) != "password" ){
//		echo ("パスワードが違います");
//		return;
//	}

	//Here we add the send mail script 
	$from="メールフォーム"; 
	$returnpath = "your_mail_address@example.com";
	$to="your_mail_address@example.com";
	
	$headers = "From: " . mb_encode_mimeheader($from, "UTF-8") . "<" . $returnpath . ">" . "\n";
	$headers .= "MIME-Version: 1.0\n"
	         . "Content-transfer-encoding: base64\n"
	         . "Content-type: text/plain; charset=UTF-8\n";
	
	mb_send_mail($to, $subject, $body,  $headers, " -f " . $returnpath );
	echo "メールを送信しました。";

}else{ 
	//メール入力画面開く

	echo <<<_EOF_

<form method=POST name=form1 action='$PHP_SELF'>
<!--
<label>Password :</label><input name=pass type=password value="" maxlength=8><br>
-->
<label>Subject :</label><input name=subject type=text value="メールフォームより"><br>
<label valign="top">Body :</label><textarea name=body rows=10 cols=80></textarea><br>
<input type=submit name=submit value=OK>
</form>

_EOF_;

}

function h($str, $quoteStyle = ENT_QUOTES)
{
    return htmlspecialchars($str, $quoteStyle);
}

?>
</body>
</html>

ブックマークレットのソース(Safari

javascript:window.open('http://ドメイン/パス/mail.php?submit=ok&subject='+encodeURIComponent(document.title)+'&body='+encodeURIComponent(location.href),%20'_blank',%20'width=650,height=700,resizable=1,scrollbars=1');undefined;