Skip to content

Email

The email channel connects Talon to any standard email account. Talon polls the inbox via IMAP to receive incoming messages and delivers replies via SMTP. Any email provider that supports IMAP and SMTP works — Gmail, Outlook, Fastmail, self-hosted mail servers, and so on.

  1. Talon connects to your inbox over IMAP and polls for new messages.
  2. When a new email arrives (from an allowed sender, if allow_from is configured), it is passed to the AI agent.
  3. The agent’s response is sent as a reply to the original email via SMTP.
  4. The conversation is stored in the shared ConversationStore, keyed by the email thread, so replies maintain context.

Gmail requires an App Password rather than your main account password. App Passwords are available when 2-Step Verification is enabled on your account.

  1. Go to myaccount.google.com/apppasswords.
  2. Select Mail and your device, then click Generate.
  3. Copy the 16-character app password.

Use these settings:

FieldValue
imap_hostimap.gmail.com
imap_port993
smtp_hostsmtp.gmail.com
smtp_port587
emailYour full Gmail address
passwordThe generated App Password
FieldValue
imap_hostoutlook.office365.com
imap_port993
smtp_hostsmtp.office365.com
smtp_port587
emailYour full Outlook address
passwordYour account password or app password

Use the IMAP and SMTP settings provided by your email host. Most providers list these in their help documentation.

{
"channels": {
"email": {
"accounts": {
"gmail": {
"imap_host": "imap.gmail.com",
"smtp_host": "smtp.gmail.com",
"email": "you@gmail.com",
"password": "abcd efgh ijkl mnop",
"imap_port": 993,
"smtp_port": 587
}
}
}
}
}
FieldRequiredDefaultDescription
imap_hostYesIMAP server hostname
smtp_hostYesSMTP server hostname
emailYesEmail address used to log in and send from
passwordYesAccount password or app-specific password
imap_portNo993IMAP port (993 for TLS, 143 for STARTTLS)
smtp_portNo587SMTP port (587 for STARTTLS, 465 for TLS)
allow_fromNoList of email addresses allowed to send messages
modelNoOverride the default AI model for this account

The allow_from field accepts a list of email addresses. Emails from any address not on the list are silently ignored.

{
"channels": {
"email": {
"accounts": {
"gmail": {
"imap_host": "imap.gmail.com",
"smtp_host": "smtp.gmail.com",
"email": "your-bot@gmail.com",
"password": "abcd efgh ijkl mnop",
"allow_from": ["you@yourpersonaldomain.com"]
}
}
}
}
}

You can connect multiple email accounts — for example, one for personal use and one for a team:

{
"channels": {
"email": {
"accounts": {
"personal": {
"imap_host": "imap.gmail.com",
"smtp_host": "smtp.gmail.com",
"email": "talon-personal@gmail.com",
"password": "..."
},
"work": {
"imap_host": "outlook.office365.com",
"smtp_host": "smtp.office365.com",
"email": "talon@company.com",
"password": "..."
}
}
}
}
}