/* $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 <hurtta+elm@posti.FMI.FI>
* or Kari Hurtta <elm@elmme-mailer.org>
*****************************************************************************/
/* 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:
*/
syntax highlighted by Code2HTML, v. 0.9.1