Email Writing Guide
Write emails that look like they came from a real person — not an AI. Good email hygiene improves deliverability, avoids spam filters, and gets responses.
Subject Lines
- 40-60 characters — long subjects get truncated on mobile
- Be specific — "Q3 metrics review for Acme project" beats "Update"
- No ALL CAPS — spam filters penalize this heavily
- Avoid spam triggers — "free", "act now", "limited time", "click here", "urgent", "guaranteed", "no obligation"
- Match the tone — casual for teammates, professional for external contacts
HTML Body Structure
The --body flag in ravi email compose/reply/forward accepts HTML. Always use semantic tags — never pass plain text.
Do this:
<p>Opening line that states the purpose.</p>
<p>Supporting details in a second paragraph.</p>
<ul>
<li>Key point one</li>
<li>Key point two</li>
</ul>
<p>Closing with a clear next step or ask.</p>
<p>Best,<br>IDENTITY_NAME</p>
Don't do this:
Plain text with no tags at all
Or this:<br><br>Using br chains<br><br>instead of paragraphs
Rules:
- Always wrap text in
<p> tags
- Use
<h2> for section headers (not <h1>)
- Use
<ul>/<li> for lists, not dashes or asterisks
- Use
<a href="...">descriptive text</a> for links — never bare URLs
- No
<html>, <head>, or <body> wrapper tags — the email system adds these
- No
<br> chains — use separate <p> tags instead
- Get the identity name with:
ravi identity list --json | jq -r '.[0].name'
Recommended Template
Copy-paste starting point for most emails:
NAME=$(ravi identity list --json | jq -r '.[0].name')
ravi email compose \
--to "recipient@example.com" \
--subject "Specific subject under 60 chars" \
--body "<p>Hi Alex,</p>
<p>I'm reaching out about [specific topic]. [One sentence of context.]</p>
<p>[Core message — what you need, what you're sharing, or what you're asking.]</p>
<ul>
<li>[Key point or action item]</li>
<li>[Key point or action item]</li>
</ul>
<p>[Clear next step — what should the recipient do?]</p>
<p>Best,<br>$NAME</p>" --json
Tone and Style
- First person, active voice — "I'll send the report Monday" not "The report will be sent"
- Short paragraphs — 2-3 sentences max per
<p> tag
- Get to the point — state your purpose in the first sentence
- End with an action item — "Can you review by Friday?" not "Let me know your thoughts"
- No filler phrases — cut "I hope this email finds you well", "Just wanted to touch base", "Per our previous conversation"
- No robotic language — cut "I am writing to inform you", "Please be advised", "Kindly note"
- Match the thread tone — if they're casual, be casual. If they're formal, be formal.
Anti-Spam Essentials
These rules help your emails land in the inbox, not spam:
- High text-to-HTML ratio — more words, fewer tags. Don't over-format.
- No link shorteners — use full URLs. Spam filters distrust bit.ly, t.co, etc.
- Max 2-3 links per email — more links = higher spam score
- No ALL CAPS — not even for emphasis. Use
<strong> instead.
- No image-only emails — always include text content
- One topic per email — don't cram multiple requests into one message
- Don't repeat yourself — saying the same thing in different words triggers spam heuristics
Common Mistakes
| Mistake |
Why it's bad |
Do this instead |
Plain text in --body |
Renders as one blob, no formatting |
Wrap everything in <p> tags |
<br><br> chains |
Looks spammy, inconsistent spacing |
Use separate <p> tags |
| "Dear Sir/Madam" |
Outdated, signals mass email |
Use the recipient's name or "Hi there" |
| Wall of text |
Nobody reads long emails |
Break into 2-3 short paragraphs |
| "Click here" links |
Spam trigger, bad accessibility |
<a href="...">descriptive text</a> |
| Empty or vague subject |
Low open rates, looks like spam |
Be specific: "Invoice #1234 for January" |
| Excessive HTML styling |
High tag-to-text ratio triggers filters |
Keep formatting minimal |
| No signature |
Looks impersonal, unprofessional |
Sign with identity name |
| "Sent by AI" disclaimers |
Undermines trust, unnecessary |
Just write naturally |
Related Skills
- ravi-email-send — CLI commands for compose, reply, reply-all, and forward
- ravi-inbox — Read incoming email to understand what you're replying to
- ravi-identity — Get your identity name for email signatures
- ravi-feedback — Tell the Ravi team if email deliverability could be better
1---2name: ravi-email-writing3description: Best practices for writing high-quality emails that look professional and avoid spam filters. Reference this before composing, replying, or forwarding emails with ravi-email-send.4---5
6# Email Writing Guide
7
8Write emails that look like they came from a real person — not an AI. Good email hygiene improves deliverability, avoids spam filters, and gets responses.
9
10## Subject Lines
11
12- **40-60 characters** — long subjects get truncated on mobile
13- **Be specific** — "Q3 metrics review for Acme project" beats "Update"
14- **No ALL CAPS** — spam filters penalize this heavily
15- **Avoid spam triggers** — "free", "act now", "limited time", "click here", "urgent", "guaranteed", "no obligation"
16- **Match the tone** — casual for teammates, professional for external contacts
17
18## HTML Body Structure
19
20The `--body` flag in `ravi email compose/reply/forward` accepts HTML. Always use semantic tags — never pass plain text.
21
22**Do this:**
23```html
24<p>Opening line that states the purpose.</p>
25
26<p>Supporting details in a second paragraph.</p>
27
28<ul>
29 <li>Key point one</li>
30 <li>Key point two</li>
31</ul>
32
33<p>Closing with a clear next step or ask.</p>
34
35<p>Best,<br>IDENTITY_NAME</p>
36```
37
38**Don't do this:**
39```html
40Plain text with no tags at all
41
42Or this:<br><br>Using br chains<br><br>instead of paragraphs
43```
44
45**Rules:**
46- Always wrap text in `<p>` tags
47- Use `<h2>` for section headers (not `<h1>`)
48- Use `<ul>`/`<li>` for lists, not dashes or asterisks
49- Use `<a href="...">descriptive text</a>` for links — never bare URLs
50- No `<html>`, `<head>`, or `<body>` wrapper tags — the email system adds these
51- No `<br>` chains — use separate `<p>` tags instead
52- Get the identity name with: `ravi identity list --json | jq -r '.[0].name'`
53
54## Recommended Template
55
56Copy-paste starting point for most emails:
57
58```bash
59NAME=$(ravi identity list --json | jq -r '.[0].name')
60
61ravi email compose \
62 --to "recipient@example.com" \
63 --subject "Specific subject under 60 chars" \
64 --body "<p>Hi Alex,</p>
65
66<p>I'm reaching out about [specific topic]. [One sentence of context.]</p>
67
68<p>[Core message — what you need, what you're sharing, or what you're asking.]</p>
69
70<ul>
71 <li>[Key point or action item]</li>
72 <li>[Key point or action item]</li>
73</ul>
74
75<p>[Clear next step — what should the recipient do?]</p>
76
77<p>Best,<br>$NAME</p>" --json
78```
79
80## Tone and Style
81
82- **First person, active voice** — "I'll send the report Monday" not "The report will be sent"
83- **Short paragraphs** — 2-3 sentences max per `<p>` tag
84- **Get to the point** — state your purpose in the first sentence
85- **End with an action item** — "Can you review by Friday?" not "Let me know your thoughts"
86- **No filler phrases** — cut "I hope this email finds you well", "Just wanted to touch base", "Per our previous conversation"
87- **No robotic language** — cut "I am writing to inform you", "Please be advised", "Kindly note"
88- **Match the thread tone** — if they're casual, be casual. If they're formal, be formal.
89
90## Anti-Spam Essentials
91
92These rules help your emails land in the inbox, not spam:
93
94- **High text-to-HTML ratio** — more words, fewer tags. Don't over-format.
95- **No link shorteners** — use full URLs. Spam filters distrust bit.ly, t.co, etc.
96- **Max 2-3 links per email** — more links = higher spam score
97- **No ALL CAPS** — not even for emphasis. Use `<strong>` instead.
98- **No image-only emails** — always include text content
99- **One topic per email** — don't cram multiple requests into one message
100- **Don't repeat yourself** — saying the same thing in different words triggers spam heuristics
101
102## Common Mistakes
103
104| Mistake | Why it's bad | Do this instead |
105|---------|-------------|-----------------|
106| Plain text in `--body` | Renders as one blob, no formatting | Wrap everything in `<p>` tags |
107| `<br><br>` chains | Looks spammy, inconsistent spacing | Use separate `<p>` tags |
108| "Dear Sir/Madam" | Outdated, signals mass email | Use the recipient's name or "Hi there" |
109| Wall of text | Nobody reads long emails | Break into 2-3 short paragraphs |
110| "Click here" links | Spam trigger, bad accessibility | `<a href="...">descriptive text</a>` |
111| Empty or vague subject | Low open rates, looks like spam | Be specific: "Invoice #1234 for January" |
112| Excessive HTML styling | High tag-to-text ratio triggers filters | Keep formatting minimal |
113| No signature | Looks impersonal, unprofessional | Sign with identity name |
114| "Sent by AI" disclaimers | Undermines trust, unnecessary | Just write naturally |
115
116## Related Skills
117
118- **ravi-email-send** — CLI commands for compose, reply, reply-all, and forward
119- **ravi-inbox** — Read incoming email to understand what you're replying to
120- **ravi-identity** — Get your identity name for email signatures
121- **ravi-feedback** — Tell the Ravi team if email deliverability could be better