Forgot to adjust default window size
[claws.git] / src / common / smtp.h
blob706a0978a4712a9261cca10f09420c0b1c0a0f67
1 /*
2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef __SMTP_H__
21 #define __SMTP_H__
23 #ifdef HAVE_CONFIG_H
24 #include "claws-features.h"
25 #endif
27 #include <glib.h>
29 #include "session.h"
31 typedef struct _SMTPSession SMTPSession;
33 #define SMTP_SESSION(obj) ((SMTPSession *)obj)
35 #define MESSAGEBUFSIZE 8192
37 typedef enum
39 SM_OK = 0,
40 SM_ERROR = 128,
41 SM_UNRECOVERABLE = 129,
42 SM_AUTHFAIL = 130
43 } SMTPErrorValue;
45 typedef enum
47 ESMTP_8BITMIME = 1 << 0,
48 ESMTP_SIZE = 1 << 1,
49 ESMTP_ETRN = 1 << 2
50 } ESMTPFlag;
52 typedef enum
54 SMTPAUTH_LOGIN = 1 << 0,
55 SMTPAUTH_CRAM_MD5 = 1 << 1,
56 SMTPAUTH_DIGEST_MD5 = 1 << 2,
57 SMTPAUTH_TLS_AVAILABLE = 1 << 3,
58 SMTPAUTH_PLAIN = 1 << 4
59 } SMTPAuthType;
61 typedef enum
63 SMTP_READY,
64 SMTP_HELO,
65 SMTP_EHLO,
66 SMTP_STARTTLS,
67 SMTP_FROM,
68 SMTP_AUTH,
69 SMTP_AUTH_LOGIN_USER,
70 SMTP_AUTH_LOGIN_PASS,
71 SMTP_AUTH_CRAM_MD5,
72 SMTP_AUTH_PLAIN,
73 SMTP_RCPT,
74 SMTP_DATA,
75 SMTP_SEND_DATA,
76 SMTP_EOM,
77 SMTP_RSET,
78 SMTP_QUIT,
79 SMTP_ERROR,
80 SMTP_DISCONNECTED,
81 SMTP_MAIL_SENT_OK,
83 N_SMTP_PHASE
84 } SMTPState;
86 struct _SMTPSession
88 Session session;
90 SMTPState state;
92 gchar *hostname;
94 gchar *user;
95 gchar *pass;
97 gchar *from;
98 GSList *to_list;
99 GSList *cur_to;
101 guchar *send_data;
102 guint send_data_len;
104 gint max_message_size;
106 SMTPAuthType avail_auth_type;
107 SMTPAuthType forced_auth_type;
108 SMTPAuthType auth_type;
110 SMTPErrorValue error_val;
111 gchar *error_msg;
112 gboolean is_esmtp;
113 ESMTPFlag esmtp_flags;
115 void *dialog;
117 #ifdef USE_GNUTLS
118 gboolean tls_init_done;
119 #endif
122 Session *smtp_session_new (void *prefs_account);
123 gint smtp_from(SMTPSession *session);
124 gint smtp_quit(SMTPSession *session);
126 #endif /* __SMTP_H__ */