Statistics
| Revision:

root / src / prefs_account.h @ 1

History | View | Annotate | Download (3.53 KB)

1
/*
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3
 * Copyright (C) 1999-2004 Hiroyuki Yamamoto
4
 *
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 2 of the License, or
8
 * (at your option) any later version.
9
 *
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.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 */
19

    
20
#ifndef __PREFS_ACCOUNT_H__
21
#define __PREFS_ACCOUNT_H__
22

    
23
#ifdef HAVE_CONFIG_H
24
#  include "config.h"
25
#endif
26

    
27
#include <glib.h>
28

    
29
typedef struct _PrefsAccount        PrefsAccount;
30

    
31
#include "folder.h"
32
#include "smtp.h"
33

    
34
typedef enum {
35
        A_POP3,
36
        A_APOP,        /* deprecated */
37
        A_RPOP,        /* deprecated */
38
        A_IMAP4,
39
        A_NNTP,
40
        A_LOCAL
41
} RecvProtocol;
42

    
43
typedef enum {
44
        SIG_FILE,
45
        SIG_COMMAND,
46
        SIG_DIRECT
47
} SigType;
48

    
49
#if USE_GPGME
50
typedef enum {
51
        SIGN_KEY_DEFAULT,
52
        SIGN_KEY_BY_FROM,
53
        SIGN_KEY_CUSTOM
54
} SignKeyType;
55
#endif /* USE_GPGME */
56

    
57
struct _PrefsAccount
58
{
59
        gchar *account_name;
60

    
61
        /* Personal info */
62
        gchar *name;
63
        gchar *address;
64
        gchar *organization;
65

    
66
        /* Server info */
67
        RecvProtocol protocol;
68
        gchar *recv_server;
69
        gchar *smtp_server;
70
        gchar *nntp_server;
71
        gboolean use_nntp_auth;
72
        gchar *userid;
73
        gchar *passwd;
74

    
75
#if USE_SSL
76
        /* SSL */
77
        SSLType ssl_pop;
78
        SSLType ssl_imap;
79
        SSLType ssl_nntp;
80
        SSLType ssl_smtp;
81
        gboolean use_nonblocking_ssl;
82
#endif /* USE_SSL */
83

    
84
        /* Temporarily preserved password */
85
        gchar *tmp_pass;
86

    
87
        /* Receive */
88
        gboolean use_apop_auth;
89
        gboolean rmmail;
90
        gint msg_leave_time;
91
        gboolean getall;
92
        gboolean recv_at_getall;
93
        gboolean enable_size_limit;
94
        gint size_limit;
95
        gboolean filter_on_recv;
96
        gchar *inbox;
97

    
98
        gint imap_auth_type;
99

    
100
        /* Send */
101
        gboolean add_date;
102
        gboolean gen_msgid;
103
        gboolean add_customhdr;
104
        gboolean use_smtp_auth;
105
        SMTPAuthType smtp_auth_type;
106
        gchar *smtp_userid;
107
        gchar *smtp_passwd;
108

    
109
        /* Temporarily preserved password */
110
        gchar *tmp_smtp_pass;
111

    
112
        gboolean pop_before_smtp;
113

    
114
        GSList *customhdr_list;
115

    
116
        /* Compose */
117
        SigType sig_type;
118
        gchar *sig_path;
119
        gboolean  set_autocc;
120
        gchar    *auto_cc;
121
        gboolean  set_autobcc;
122
        gchar    *auto_bcc;
123
        gboolean  set_autoreplyto;
124
        gchar    *auto_replyto;
125

    
126
#if USE_GPGME
127
        /* Privacy */
128
        gboolean default_encrypt;
129
        gboolean default_sign;
130
        gboolean ascii_armored;
131
        gboolean clearsign;
132
        SignKeyType sign_key;
133
        gchar *sign_key_id;
134
#endif /* USE_GPGME */
135

    
136
        /* Advanced */
137
        gboolean  set_smtpport;
138
        gushort   smtpport;
139
        gboolean  set_popport;
140
        gushort   popport;
141
        gboolean  set_imapport;
142
        gushort   imapport;
143
        gboolean  set_nntpport;
144
        gushort   nntpport;
145
        gboolean  set_domain;
146
        gchar    *domain;
147

    
148
        gchar *imap_dir;
149

    
150
        gboolean set_sent_folder;
151
        gchar *sent_folder;
152
        gboolean set_draft_folder;
153
        gchar *draft_folder;
154
        gboolean set_trash_folder;
155
        gchar *trash_folder;
156

    
157
        /* Default or not */
158
        gboolean is_default;
159
        /* Unique account ID */
160
        gint account_id;
161

    
162
        RemoteFolder *folder;
163
};
164

    
165
PrefsAccount *prefs_account_new                (void);
166

    
167
void prefs_account_read_config                (PrefsAccount        *ac_prefs,
168
                                         const gchar        *label);
169
void prefs_account_write_config_all        (GList                *account_list);
170

    
171
void prefs_account_free                        (PrefsAccount        *ac_prefs);
172

    
173
PrefsAccount *prefs_account_open        (PrefsAccount        *ac_prefs);
174

    
175
#endif /* __PREFS_ACCOUNT_H__ */