/* $Id: mailerlib.h,v 1.4 2006/04/09 07:37:05 hurtta Exp $ */ /****************************************************************************** * The Elm (ME+) Mail System - $Revision: 1.4 $ $State: Exp $ * * Author: Kari Hurtta * or Kari Hurtta *****************************************************************************/ /* init.c */ extern void init_mailerlib P_((void)); /* mailer.c */ extern int mailerfunc P_((char **value, int enter, int lineno, char *filename)); typedef void sending_message_func P_((int background)); extern struct mailer_info *get_mailer_info P_((void)); extern void free_mailer_info P_((struct mailer_info **S)); enum MI_query { MI_HAVE_8BITMIME = 1, MI_HAVE_BINARYMIME = 2, MI_HAVE_DSN = 3, MI_DONT_ADD_FROM = 4, MI_USE_DOMAIN = 5 }; extern int query_mailer_info P_((struct mailer_info *I, enum MI_query query)); /* -1 if connection lost 0 if OK 1 if mailer reinitialized and query_mailer_info() need to be called again */ extern int mailer_restarted P_((struct mailer_info *I)); /* Should return 1 if verify succees and fields of result to be filled -- caller should free fields of result Returns 0 on failure */ enum mailer_errcode { MAILER_OK = 0, /* Address OK */ MAILER_NOT_AVAIL, /* Address verify not available */ MAILER_NOT_EXIST /* Address not exists */ }; int verify_mailer_addr P_((struct mailer_info *I, CONST char *text, struct addr_item *result, enum mailer_errcode *errcode)); int verify_mailer_domaddr P_((struct mailer_info *I, CONST char *text, struct addr_item *result, enum mailer_errcode *errcode)); /* Return NULL if no editor (and no value either) */ extern struct mailer_env_from * mailer_get_env_from P_((struct mailer_info *I)); extern void mailer_free_env_from P_((struct mailer_env_from **X)); extern int env_from_changed P_((struct mailer_env_from *X)); /* return temporary pointer value -- do not free return NULL if currently no value set (use implicit default) */ extern CONST char * mailer_env_from_value P_((struct mailer_env_from *X, int *can_edit)); extern void mailer_env_from_change P_((struct mailer_env_from *X, const char * value)); extern struct mail_send_state *mailer_init P_((char **addr_args, int dsn, int verbose, struct mailer_info *info, struct mailer_env_from *env_from)); /* Note that also mail_backend2 does freeing ... */ extern void free_mail_send_state P_((struct mail_send_state **S)); extern out_state_t *get_mail_outfd P_((struct mail_send_state *X)); /* mail_backend2 may free pointer ... */ extern int mail_backend2 P_((struct mail_send_state **mail_fd, end_handler *func, int encoding_top, char * title, sending_message_func *sm)); /* Return mailer path or type ... */ extern CONST char *get_mailer_path P_((struct mail_send_state *mail_fd)); void init_default_mailer P_((void)); extern char * kludge_addr P_((char **addr)); extern char **argv_from_headers P_((struct mailing_headers * headers)); /* outheaders.c */ extern void zero_mailing_headers P_((struct mailing_headers *hdrs)); extern void free_mailing_headers P_((struct mailing_headers *hdrs)); extern char * from_addr_literal P_((struct mailer_info *mailer_info)); extern void make_from_addr P_((struct expanded_address *expanded, struct mailer_info *mailer_info)); /* shared_mailer.c */ #ifdef USE_DLOPEN extern SHAREDLIB use_shared_all; #endif extern struct mailer_config * loc_mailer_type P_((char *f)); /* * Local Variables: * mode:c * c-basic-offset:4 * buffer-file-coding-system: iso-8859-1 * End: */