ツール一覧 / AI活用ノート / AIでメルマガ件名を30本出す前に|スマホで切れる文字数を測る手順
AIにメルマガの件名をまとめて作らせる前に、スマホで何文字目から切れるかを測る手順をまとめました。Claudeに渡すコピペ用プロンプトと文字数を数えるスクリプト、30本を3本に絞るチェック表を載せ、送る前に見るGmailの基準と景品表示法の注意点にも触れています。
配信予約の前の晩、件名の欄だけが空いている。Claudeに30本出させて選べばいい、と思って頼んだら、返ってきたのは件名ではなく Not logged in · Please run /login の1行でした。
結論: AIに件名を頼む前に、スマホで何文字目から切れるかを先に測っておく
- 何文字まで書いていいか迷うなら → 受信トレイの模型で一度見る(今回は21字目から「…」になった)
- プロンプトを書くなら → 「最初の15字に要点」「中身にない数字は書かない」 を入れる
- 30本の長さを確かめるなら → AIに数えさせず、スクリプトで数える
この記事は、件名を受け取ったらすぐ「何文字か」「スマホで切れるか」を測れる道具を作った記録です。Claudeは未ログインのまま止まったので、AIの件名は1本も作れていません。載せているのは、プロンプト・動作を確かめたスクリプト・絞り込みの手順の3つです。
今回の模型では、20字までは全部見えて、21字目から「…」になりました。
模型の作りはこうです。

GmailやiPhoneの標準メールの実画面ではありません。アプリや文字サイズで、見える文字数は変わります。目安の数字も、出どころによってばらばらです。
| 出どころ | 目安 | 種類 |
|---|---|---|
| ベンチマーク・ジャパンのブログ | 18〜20字 | スマホで見える目安 |
| 今回の模型(幅390px) | 20字まで見える | 自作の画面での実測 |
| 他社のプロンプト例 | 25字・30字以内 | AIへの条件の例。基準ではない |
← 表は横にスクロールできます →

同じ記事では、長い件名と短い件名で4回A/Bテスト(2案を出し分けて比べる方法)をしています。開封率の差はどの回も0.5ポイント以内でした。
つまり、長さで悩みすぎなくていい。切れても意味が通るよう、要点を頭に寄せるほうが効きます。個人的には、目安の数字を覚えるより、模型で一度見ておくほうが早いと感じました。
30本を頼む前に、短い依頼を1本流して、ちゃんと動くか確かめてください。
ClaudeをClaude Code(ターミナルから使う版)で自動で回そうとして、最初に投げた依頼がこれです。
Web制作会社のお知らせメルマガの件名を30本考えてください。
| 試したこと | 返ってきたもの | かかった時間 |
|---|---|---|
| 上の依頼をそのまま送る | Not logged in · Please run /login |
1.331秒 |
| 「テスト。OKとだけ返して」を送る | 同じエラー | 一瞬で終了 |
← 表は横にスクロールできます →
原因はログインしていなかっただけ。
ただ、30本ぶんの依頼文を作り込んでから気づくと地味に痛いです。
ブラウザ版のClaudeは今回試していません。料金ページを見ると、Freeプランは月$0で用意されています。

| プラン | 料金(2026-10-21時点) | 件名出しに使うなら |
|---|---|---|
| Free | 月$0 | これで足りる |
| Pro | 月払いで月$20 | 上限に何度も当たる人向け |
← 表は横にスクロールできます →
どのプランにも、5時間ごとに戻る利用上限があります。Freeの上限はProより少なめです。
「型の配分」「最初の15字」「中身にない数字を書かない」の3つを指定します。
1回目の素の依頼の代わりに組んだのが、次のプロンプトです。ただし、このプロンプトはまだ一度も実行していないので、件名がよくなるかは確かめていません。使うときは自分のメルマガの中身を入れて、出てきた件名を確かめてください。
あなたはWeb制作会社のメルマガ担当です。次のお知らせメールの件名を30本作ってください。
# お知らせの中身
- 内容: (ここに1通分の中身を書く。例: 小規模店舗向けホームページ制作プランの料金改定と、無料相談会の日程)
- 読む人: 既存のお客様と、過去に問い合わせた見込み客
# 条件
- 1本あたり全角25字以内。いちばん伝えたいことを最初の15字に入れる
- 型ごとに10本ずつ: 数字型 / 問いかけ型 / ベネフィット型
- 「必見」「衝撃」「今すぐ」など煽る言葉は使わない。中身にないこと(割引率・期限など)は書かない
- 【】は1本につき1組まで
# 出力形式
次の形の行だけを30行出力する。前置き・解説は書かない。
型<TAB>件名
| 条件 | 入れた理由 |
|---|---|
| お知らせの中身・読む人 | Claude公式ガイドは、Claudeを「コンテキストを持たない新入社員」と考えて、背景まで書くよう勧めている |
| 型ごとに10本 | 似た言い回しばかりになるのを防ぎ、比べる材料を作る |
| 最初の15字に要点 | 模型で20字までしか見えなかったので、余裕をもたせた |
| 中身にない数字を書かない | 根拠のない「半額」「今だけ」を混ぜないため(後の章で説明) |
| 型 |
次の章のスクリプトにそのまま流せる |
← 表は横にスクロールできます →
もう一歩詰めたい人向けに、足し方を2つ。
<context> で囲んで原稿ごと渡す。公式ガイドも、指示・背景・入力を <instructions> <context> <input> のようなタグで分けると誤解が減る、と書いています<example> で囲んで足すみんなの声
「メルマガのタイトルについては、少しだけ高度なプロンプトを作成する必要があります。」 — 配信サービス運営会社のブログ(2024年11月)
「与える情報が多ければ、このバリエーションもより魅力的なものになります。」 — noteの記事(2023年5月)
30本を目で数えるのは手間です。1行1件名のテキストを、このスクリプトに通します。
// 使い方: node measure.cjs 件名ファイル.txt
// 1行1件名(「型<TAB>件名」でも可)。文字数(全角半角どちらも1文字)と、型の自動判定を出す
const fs = require('fs');
const lines = fs.readFileSync(process.argv[2], 'utf8').split('\n').map(s => s.trim()).filter(Boolean);
const rows = lines.map(l => {
const [a, b] = l.includes('\t') ? l.split('\t') : [null, l];
const s = b.replace(/^\s*(\d+[..))]|[-・*])\s*/, '');
const len = [...s].length;
const auto = [];
if (/[0-90-9]|[一二三四五六七八九十]つ|[一二三四五六七八九十百]選/.test(s)) auto.push('数字');
if (/[??]|ですか|ませんか|でしょうか/.test(s)) auto.push('問いかけ');
return { label: a, subject: s, len, auto: auto.join('+') || '-', band: len <= 15 ? '〜15字' : len <= 20 ? '16〜20字' : len <= 25 ? '21〜25字' : '26字〜' };
});
for (const r of rows) console.log(`${String(r.len).padStart(3)}字\t${r.band}\t${r.label ?? ''}\t${r.auto}\t${r.subject}`);
const count = k => rows.reduce((m, r) => (m[r[k]] = (m[r[k]] || 0) + 1, m), {});
console.log('\n件数', rows.length, '/ 平均', (rows.reduce((a, r) => a + r.len, 0) / rows.length).toFixed(1), '字 / 最長', Math.max(...rows.map(r => r.len)), '字');
console.log('文字数帯', count('band'));
console.log('自動判定の型', count('auto'));
fs.writeFileSync(process.argv[2].replace(/\.txt$/, '') + '.json', JSON.stringify(rows, null, 2));
動かしてみて分かったことです。
measure.js という名前だと require is not defined が出ました。上の階層の package.json がESM(新しい書き方のモジュール)指定だったためです。拡張子を .cjs にしたら動きましたAIが文字数を守ったという報告もあります。
「先ほど指定した「タイトルは20文字以内」という文字数制限も守られています。」 — 配信サービス運営会社のnote(2023年1月)
それでも、30本を1本ずつ確かめる手間を考えると、数えるのは機械に任せたほうが楽です。
30本は「出させる材料」です。チェック表で10本、声に出して3本、最後はA/Bテストで決めます。
2番目の「表でふるう」で使うのがこの表です。1つでも×が付いたら外します。
| # | 見るところ | ×になる例 |
|---|---|---|
| 1 | 先頭15字だけで中身が分かる | 「いつもありがとうございます。さて…」 |
| 2 | 本文の中身と合っている | 本文にない「新サービス」が件名にある |
| 3 | 根拠のない数字・「今だけ」がない | 料金改定のお知らせなのに「半額」 |
| 4 | 読む人の言葉になっている | 社内の呼び名やプラン略称のまま |
| 5 | 送信者名・プリヘッダーと続けて読んで自然 | 件名とプレビューで同じことを2回言う |
| 6 | 返信でも転送でもないのに「Re:」「Fwd:」が付いている | 「Re: 無料相談会のご案内」 |
← 表は横にスクロールできます →
5番のプリヘッダーは、受信箱で件名の後ろに出る本文のプレビューです。件名に入りきらない情報を置く場所なので、3本に絞ったらそれぞれに1行ずつ付けておくと比べやすくなります。表示されないメールソフトもあります。
3番目の「声に出す」は地味ですが効きます。耳で聞いて引っかかる件名は、受信箱でも目が止まりません。
「メルマガ作成においてタイトルで悩まれる方は多いと思いますので、アイデア出しとしてChatGPTが役立つのではないでしょうか。」 — 配信サービス運営会社のnote(2023年1月)
そのままは送らないでください。見るのは「数字に根拠があるか」と「中身と合っているか」の2点です。
| ルール | 件名で気をつけること |
|---|---|
| Gmailの送信者ガイドライン | 件名は送信者とメールの中身を正確に表す。返信・転送でないのに「Re:」「Fwd:」を付けない |
| 景品表示法(有利誤認) | 基本の価格を書かずに「今なら半額!」とした例が、有利誤認の事例として載っている。わざとでなくても規制の対象 |
| 特定電子メール法 | 広告宣伝メールはこの法律の対象。総務省がガイドラインとパンフレットを出している |
← 表は横にスクロールできます →
AIは、頼んでいない数字をもっともらしく足すことがあります。プロンプトの「中身にないことは書かない」は、そのための一行です。それでも最後は人の目で見てください。
もう一つ。件名を変えても、迷惑メールに入るかどうかは決まりません。Gmailは送信者に、迷惑メール率を0.3%未満に保つよう求めています。
Q. 無料版のClaudeでもできますか? A. できます。2026-10-21時点でFreeは月$0で、チャットが使えます。件名を30本出すくらいなら有料プランは要りません。上限に当たったら、5時間ごとに戻るのを待ちます。
Q. 件名は本文より先に決めるべきですか?
A. AIに頼むなら、本文か要点を書いてからのほうが合わせやすいです。Claudeの公式ガイドにも、背景や入力を <context> などのタグで分けて渡すと誤解が減る、と書かれています。
Q. お客様の名前や配信リストを貼ってもいいですか? A. 貼らないでください。学習への利用を許可していると、データは個人が分からない形で最大5年保存されることがあります。固有名詞は伏せて、プライバシー設定も一度確認しておくと安心です。
require で落ちたら拡張子を .cjs にする次にやること: 次の配信の前に、上のプロンプトの「お知らせの中身」に自分のメルマガの要点を入れて、Claudeに30本出させてみてください。
この記事は、Webサイトの動く部品集 AETHER Motion の制作チームが書いています。