Give nanobot its own email address and forward it your mail
Set up a dedicated Gmail mailbox for nanobot, forward it threads and PDFs from your own inbox, and get back the action items and deadlines by reply.
· ranx.cloud

This guide is for people whose work arrives as email and who would rather forward a long thread than read it twice. You give nanobot its own mailbox, allow only your own address to write to it, and from then on you can forward a thread, an invoice or a contract from any mail client and get a reply with what you have to do and by when. A Friday job sends you a list of the deadlines it has collected.
It needs no chat app at all, which makes it a good fit if you don't use Telegram or Discord. Setup is done in the nanobot WebUI and in the Google account settings. Labels and behaviour were checked against nanobot v0.4.0 and its email guide.
How the Email channel works
nanobot logs in to a mailbox over IMAP, checks for unread messages every 30 seconds by default, and passes each accepted message to the agent as a chat turn. The agent's answer goes back as an email reply over SMTP, threaded under the original subject with a Re: prefix. Both connections are outbound from nanobot, so nothing has to reach your instance from the internet.
Three rules decide whether a message is accepted:
- The sender must be in Allowed senders. Email has no pairing step, so this list is the whole access control.
- With Verify SPF and Verify DKIM on (the default), the receiving mail server's
Authentication-Resultsheader must show the sender's domain passed, and that header must come from a server listed in Trusted authentication services. Since v0.3.5 the channel refuses to start without that list. - Email access must be Granted. Setting it to Not granted turns off mailbox access completely.
Use a mailbox that exists only for nanobot. It reads everything unread in it, and you don't want your agent working through your real inbox.
Step 1: Create the mailbox and an app password
- Create a new Google account, for example
yourname.nanobot@gmail.com. - Turn on 2-Step Verification for it (Google Account → Security). App passwords are only offered once it's on.
- Open App passwords, create one named
nanobot, and copy the 16-character password. You use it for both IMAP and SMTP.
The same channel works with Outlook and iCloud; the setup form has quick-fill buttons for both. Their app-password steps differ, so follow the provider's own help page.
Step 2: Connect the mailbox
Open Channels in the WebUI and select Email. Choose Gmail under Quick fill, which sets imap.gmail.com:993 and smtp.gmail.com:587. Then fill in:
| Field | Value |
|---|---|
| Email access | Granted |
| IMAP username | yourname.nanobot@gmail.com |
| IMAP password | the app password |
| SMTP username | yourname.nanobot@gmail.com |
| SMTP password | the app password |
| From address | yourname.nanobot@gmail.com |
| Allowed senders | your real address, for example you@example.com |
| Trusted authentication services | mx.google.com |
Keep Verify DKIM and Verify SPF on. Then open Advanced and set Attachment types to application/pdf, image/*.
Gmail's receiving servers stamp Authentication-Results: mx.google.com; ... on incoming mail, which is why that value goes in the trust list. Attachments are ignored unless you list MIME types; with the setting above, PDFs and images up to 2 MB each (five per message) are saved for the agent to read. PDF and Office readers are built in.
Leave Check interval (seconds) at 30 and Automatic replies on. Choose Check connection, then Enable channel, and Restart nanobot when asked.
Step 3: Teach it what to do with forwarded mail
Send a first email from your own address to the bot's address, subject Setup:
From now on, when I forward you an email or thread:
1. Reply with "Action items:" and a numbered list of what I personally
have to do, each with the deadline if one is stated, else "no date".
2. Then "Waiting on others:" with what other people promised, and who.
3. Then one line: the single most urgent item.
Skip pleasantries and signatures. Keep the reply under 200 words.
If I add a note above the forwarded part, follow the note instead.
Save these rules to your long-term memory.
nanobot answers in the same thread within about a minute. Long-term memory is updated in the background, not instantly; the memory guide shows how to check it was saved.
Now forward a real thread from your normal inbox. Add a line above it when you want something different:
Draft a polite reply declining the meeting, and list what they asked for.
Drafts come back to you to copy and send yourself. nanobot's message tool can send mail from this mailbox to other addresses if asked, so add a line to the setup rules such as "Never email anyone except me." Forwarded mail is text written by other people, and you don't want an instruction hidden in it to become an outgoing email.
Step 4: A Friday deadline list
Ask, in an email to the bot:
Keep a file deadlines.md in your workspace. Whenever you reply with action
items that have a date, add them there as "- YYYY-MM-DD: item (from: subject)".
Every Friday at 16:00, read deadlines.md and email me the items due in the
next 14 days, sorted by date. Remove items whose date has passed.
If nothing is due, reply "No deadlines in the next two weeks."
The scheduled job is created in this email conversation, so its result arrives as an email in the same thread. In the WebUI, Automations lists it under My tasks; run it once from there to test delivery. The schedule uses nanobot's timezone, set in Settings → System → Timezone.
Costs
Two things count: the model and the size of what you forward. Message bodies are cut at 12,000 characters (Body length limit), roughly 3,000 tokens. A forwarded thread plus the system prompt, tools and the conversation so far comes to something like 15,000 input tokens on the first model call; reading a PDF attachment adds another call with the extracted text. Treat 25,000 input and 500 output tokens per forwarded email as a working figure, and check Settings → Overview → Token usage after a week.
With OpenRouter list prices in November 2026, 10 forwards a working day (220 a month):
Claude Haiku 5.5 ($0.10 in / $0.50 out per million):
25,000 × 0.10 / 1e6 = $0.0025
500 × 0.50 / 1e6 = $0.00025
≈ $0.0028 per email × 220 ≈ $0.61/month
Claude Sonnet 5.5 ($2 / $10):
25,000 × 2 / 1e6 + 500 × 10 / 1e6 = $0.055 per email × 220 ≈ $12/month
Extracting deadlines from a thread is a reading task; a small model does it well. Use a larger one only through /model in a specific conversation if you find it missing things.
A free Gmail account is enough for this volume.
What goes wrong
The channel won't start and mentions trusted_authserv_ids. Trusted authentication services is empty while SPF or DKIM verification is on. Set it to mx.google.com for a Gmail mailbox. Don't turn verification off to get around it; the upgrade notes explain why.
Login fails on Check connection. You used the account password, or 2-Step Verification was turned off afterwards, which revokes app passwords. Create a new app password.
Your forwards are silently ignored. Either the sender address doesn't exactly match Allowed senders (aliases count as different addresses), or the message failed SPF/DKIM alignment. Mail from a custom domain with no DKIM signing is the usual cause. Skipped messages are left in the mailbox by default (Keep skipped mail), so open the bot's Gmail and look at the message's original headers to see which check failed.
Replies stop arriving after a while. A user reported mail only being picked up after a restart. Check the Email row in Channels; if it shows Failed or Not running, use Check connection and restart. Messages that arrived meanwhile are still unread and get processed on the next poll.
The bot reads mail you marked as read on your phone. It only takes unread messages, and marks them read itself (Mark as read). If you open the bot's mailbox in Gmail and read a message first, nanobot won't see it. Leave that mailbox alone.
An attachment isn't mentioned in the reply. Its MIME type isn't in Attachment types, or it's over 2 MB (Attachment limit (bytes)). Raise the limit or send a link instead.
A reply arrives late after maintenance. On ranx.cloud an instance can be restarted briefly now and then. Unread mail waits in the mailbox and is processed when nanobot is back; a Friday job whose time passed during a restart is not replayed and runs again the next Friday.


