自動メール送信ツール
指定した曜日・時刻にメールを自動送信します。
以下は、HTMLファイル内にJavaScriptを記述したサンプルコードです。
```html
<!DOCTYPE html>
<html>
<head>
<title>自動メール送信ツール</title>
</head>
<body>
<h1>自動メール送信ツール</h1>
<p>指定した曜日・時刻にメールを自動送信します。</p>
<form>
<p>メールアドレス: <input type="text" id="email"></p>
<p>曜日: <select id="day">
<option value="0">日曜日</option>
<option value="1">月曜日</option>
<option value="2">火曜日</option>
<option value="3">水曜日</option>
<option value="4">木曜日</option>
<option value="5">金曜日</option>
<option value="6">土曜日</option>
</select></p>
<p>時刻: <input type="time" id="time"></p>
<p><input type="submit" value="設定"></p>
</form>
<script>
function sendMail() {
const day = parseInt(document.getElementById('day').value);
const time = document.getElementById('time').value;
const email = document.getElementById('email').value;
const today = new Date();
const targetDay = new Date();
targetDay.setHours(parseInt(time.split(':')[0]));
targetDay.setMinutes(parseInt(time.split(':')[1]));
let dayDiff = day - today.getDay();
if (dayDiff < 0) {
dayDiff += 7;
}
targetDay.setDate(targetDay.getDate() + dayDiff);
if (targetDay < today) {
targetDay.setDate(targetDay.getDate() + 7);
}
setTimeout(() => {
const subject = 'お知らせ';
const body = 'こんにちは!\n\n本メールはテストです。\n\nよろしくお願いします。';
window.location.href = `mailto:${email}?subject=${subject}&body=${body}`;
}, targetDay - today);
}
document.querySelector('form').addEventListener('submit', (event) => {
event.preventDefault();
const email = document.getElementById('email').value;
const pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (!pattern.test(email)) {
alert('正しいメールアドレスを入力してください。');
return;
}
sendMail();
alert('メールを送信する予定日時に送信されるように設定されました。')
});
</script>
</body>
</html>
```
注意点として、evalや他のサイトへの遷移、リダイレクトなどの処理は行っていません。また、alertを使わずにユーザーにメッセージを表示するように実装しています。