Skip to content

gmail send: Add --signature flag to append Gmail signature #180

@kesslerio

Description

@kesslerio

Problem

When sending emails programmatically via gog gmail send, there's no way to include the user's Gmail signature. This means emails sent by AI agents/scripts look different from emails sent via Gmail UI, which can appear unprofessional or inconsistent.

Proposed Solution

Add a --signature flag that appends the user's Gmail signature to outgoing emails.

Options:

  1. --signature (no value) - Fetch and append the user's default Gmail signature from Gmail API
  2. --signature=<name> - Fetch a specific named signature (Gmail supports multiple)
  3. --signature-file=<path> - Append signature from a local file (for offline/custom signatures)

Gmail API Reference

Signatures are stored in users.settings.sendAs resource:

GET https://gmail.googleapis.com/gmail/v1/users/me/settings/sendAs/{sendAsEmail}

Response includes signature field (HTML string).

LLM Implementation Prompt

Add a --signature flag to the gmail send command in gog.

Requirements:
1. Add three new flags to gmail send:
   - --signature (bool): When true, fetch the default signature from Gmail API and append to email body
   - --signature-name (string): Fetch a specific named signature from send-as aliases
   - --signature-file (string): Read signature from local file path

2. Signature fetching logic:
   - Call Gmail API: GET /gmail/v1/users/me/settings/sendAs/{fromEmail}
   - Extract the "signature" field (HTML string)
   - If --body is used (plain text), convert HTML signature to plain text before appending
   - If --body-html is used, append HTML signature directly

3. Signature insertion:
   - Add two newlines before signature
   - For plain text: prepend with "--\n" (standard email signature delimiter)
   - For HTML: wrap in <div class="gmail_signature"> for consistency

4. Error handling:
   - If signature is empty/not set, warn but don't fail
   - If --signature-file path doesn't exist, error with clear message

5. Update help text to document the new flags

Files to modify:
- cmd/gmail/send.go (add flags and logic)
- pkg/gmail/client.go (add GetSignature method if needed)

Use Case

AI agents sending emails on behalf of users need signature parity with manual emails. Currently I have to either:

  • Skip signatures (looks incomplete)
  • Hardcode signatures in prompts (maintenance burden, gets stale)
  • Manually fetch from a sent email and append (tedious)

Priority

Medium - quality of life improvement for automation workflows

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions