masqmail

diff src/smtp_out.h @ 0:08114f7dcc23

this is masqmail-0.2.21 from oliver kurth
author meillo@marmaro.de
date Fri, 26 Sep 2008 17:05:23 +0200
parents
children 26e34ae9a3e3
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/smtp_out.h	Fri Sep 26 17:05:23 2008 +0200
     1.3 @@ -0,0 +1,91 @@
     1.4 +/* smtp_out.h, Copyright (C) Oliver Kurth,
     1.5 + *
     1.6 + * This program is free software; you can redistribute it and/or modify
     1.7 + * it under the terms of the GNU General Public License as published by
     1.8 + * the Free Software Foundation; either version 2 of the License, or
     1.9 + * (at your option) any later version.
    1.10 + * 
    1.11 + * This program is distributed in the hope that it will be useful,
    1.12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.14 + * GNU General Public License for more details.
    1.15 + *
    1.16 + * You should have received a copy of the GNU General Public License
    1.17 + * along with this program; if not, write to the Free Software
    1.18 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    1.19 + */
    1.20 +
    1.21 +#include <unistd.h>
    1.22 +#include <sys/types.h>
    1.23 +#include <sys/socket.h>
    1.24 +#include <sys/time.h>
    1.25 +#include <netinet/in.h>
    1.26 +#include <netdb.h>
    1.27 +
    1.28 +#define SMTP_BUF_LEN 1024
    1.29 +#define SMTP_SIZE_ADD 1024
    1.30 +
    1.31 +#define SMTP_INITIAL_TIMEOUT 5*60
    1.32 +#define SMTP_CMD_TIMEOUT 5*60
    1.33 +#define SMTP_DATA_TIMEOUT 5*60
    1.34 +#define SMTP_FINAL_TIMEOUT 10*60
    1.35 +
    1.36 +typedef
    1.37 +enum _smtp_error{
    1.38 +  smtp_ok = 0,   /* mail was delivered to at least one recpient */
    1.39 +  smtp_trylater, /* server responded with 4xx */
    1.40 +  smtp_fail,     /* server responded with 5xx */
    1.41 +  smtp_timeout,  /* connection timed out */
    1.42 +  smtp_eof,      /* got unexpected EOF */
    1.43 +  smtp_syntax,   /* unexpected response */
    1.44 +  smtp_cancel    /* we gave up (eg. size) */
    1.45 +} smtp_error;
    1.46 +
    1.47 +
    1.48 +typedef
    1.49 +struct _smtp_base{
    1.50 +  FILE *in;
    1.51 +  FILE *out;
    1.52 +
    1.53 +  gint sock;
    1.54 +  gint dup_sock;
    1.55 +
    1.56 +  gchar *remote_host;
    1.57 +  gchar *helo_name;
    1.58 +
    1.59 +  gchar *buffer;
    1.60 +  gint last_code;
    1.61 +
    1.62 +  gboolean use_esmtp;
    1.63 +  gboolean use_size;
    1.64 +  gboolean use_pipelining;
    1.65 +  gboolean use_auth;
    1.66 +  
    1.67 +  gint max_size;
    1.68 +
    1.69 +  gchar **auth_names;
    1.70 +
    1.71 +  gchar *auth_name;
    1.72 +  gchar *auth_login;
    1.73 +  gchar *auth_secret;
    1.74 +
    1.75 +  smtp_error error;
    1.76 +
    1.77 +} smtp_base;
    1.78 +
    1.79 +gchar *set_heloname(smtp_base *psb, gchar *default_name, gboolean do_correct);
    1.80 +gboolean set_auth(smtp_base *psb, gchar *name, gchar *login, gchar *secret);
    1.81 +void destroy_smtpbase(smtp_base *psb);
    1.82 +smtp_base *smtp_out_open(gchar *host, gint port, GList *resolve_list);
    1.83 +smtp_base *smtp_out_open_child(gchar *cmd);
    1.84 +gboolean smtp_out_rset(smtp_base *psb);
    1.85 +gboolean smtp_out_init(smtp_base *psb);
    1.86 +gint smtp_out_msg(smtp_base *psb,
    1.87 +		  message *msg, address *return_path,
    1.88 +		  GList *rcpt_list, GList *hdr_list);
    1.89 +gboolean smtp_out_quit(smtp_base *psb);
    1.90 +
    1.91 +gint smtp_deliver(gchar *host, gint port, GList *resolve_list,
    1.92 +		  message *msg,
    1.93 +		  address *return_path,
    1.94 +		  GList *rcpt_list);