botbook/src/06-gbdialog/keyword-send-mail.md
Rodrigo Rodriguez (Pragmatismo) 5b047cbd54 docs: add ON EMAIL and ON CHANGE keyword documentation
- Add keyword-on-email.md (236 lines)
- Add keyword-on-change.md (300 lines)
- Update SUMMARY.md with new keywords
- Update PROMPT.md with weekly maintenance checklist
2025-12-18 16:18:04 -03:00

2.4 KiB

SEND MAIL

Send email messages.

Syntax

SEND MAIL to, subject, body
SEND MAIL to, subject, body USING "account@example.com"

Parameters

Parameter Type Description
to String Recipient email address(es), comma-separated for multiple
subject String Email subject line
body String Email body (plain text or HTML)
account String (Optional) Connected account to send through

Description

The SEND MAIL keyword sends emails using either:

  1. Default SMTP - Configuration from config.csv
  2. Connected Account - Send through Gmail, Outlook, etc. configured in Sources app

Configuration

Default SMTP in config.csv:

name,value
email-from,noreply@example.com
email-server,smtp.example.com
email-port,587
email-user,smtp-user@example.com
email-pass,smtp-password

Examples

SEND MAIL "user@example.com", "Welcome!", "Thank you for signing up."
recipients = "john@example.com, jane@example.com"
SEND MAIL recipients, "Team Update", "Meeting tomorrow at 3 PM"
body = "<h1>Welcome!</h1><p>Thank you for joining us.</p>"
SEND MAIL "user@example.com", "Getting Started", body

USING Clause

Send through a connected account configured in Suite → Sources → Accounts:

SEND MAIL "customer@example.com", "Subject", body USING "support@company.com"

The email appears from that account's address with proper authentication.

SEND MAIL "customer@example.com", "Ticket Update", "Your ticket has been resolved." USING "support@company.com"

Delivery Status

status = SEND MAIL "user@example.com", "Test", "Message"
IF status = "sent" THEN
    TALK "Email delivered successfully"
END IF

Best Practices

  1. Use connected accounts for better deliverability
  2. Validate email addresses before sending
  3. Implement delays for bulk emails
  4. Handle failures gracefully

Troubleshooting

Issue Cause Solution
Auth failed Invalid credentials Check config.csv or re-authenticate account
Not sending Firewall blocking Verify port 587/465 is open
Going to spam No domain auth Configure SPF/DKIM
Account not found Not configured Add account in Suite → Sources

See Also

Implementation

Located in src/basic/keywords/send_mail.rs