#ifndef BOKF_MAIL_H #define BOKF_MAIL_H #include #include #include struct mail_message { const char *to; const char *subject; const char *body; const char *attach_name; const unsigned char *attach; size_t attach_len; }; /* True for an address the SMTP client can send to: one @, no spaces or control characters, not empty. */ int mail_addr_valid(const char *addr); /* Checks the org's SMTP settings (including decrypting the stored smtp_password) without sending. 0 configured, -1 not configured. */ int mail_config_check(sqlite3 *db, int64_t org_id, char *err, size_t errlen); /* Sends m as a PDF attachment. 0 sent, -1 not configured, -2 send failed. err receives an English message; secrets are never included. */ int mail_send_pdf(sqlite3 *db, int64_t org_id, const struct mail_message *m, char *err, size_t errlen); #endif