From 0b3cbf57875fd692e4ba0b336fefa4bee1ed00dc Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Mon, 26 Feb 2018 11:23:00 +0100 Subject: Initial commit for sylpheed 3.7.0 --- libsylph/smtp.h | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 libsylph/smtp.h (limited to 'libsylph/smtp.h') diff --git a/libsylph/smtp.h b/libsylph/smtp.h new file mode 100644 index 0000000..6bf3ce5 --- /dev/null +++ b/libsylph/smtp.h @@ -0,0 +1,116 @@ +/* + * LibSylph -- E-Mail client library + * Copyright (C) 1999-2008 Hiroyuki Yamamoto + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __SMTP_H__ +#define __SMTP_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include "session.h" + +typedef struct _SMTPSession SMTPSession; + +#define SMTP_SESSION(obj) ((SMTPSession *)obj) + +#define SMTPBUFSIZE 8192 + +typedef enum +{ + SM_OK = 0, + SM_ERROR = 128, + SM_UNRECOVERABLE = 129, + SM_AUTHFAIL = 130 +} SMTPErrorValue; + +typedef enum +{ + ESMTP_8BITMIME = 1 << 0, + ESMTP_SIZE = 1 << 1, + ESMTP_ETRN = 1 << 2 +} ESMTPFlag; + +typedef enum +{ + SMTPAUTH_LOGIN = 1 << 0, + SMTPAUTH_CRAM_MD5 = 1 << 1, + SMTPAUTH_DIGEST_MD5 = 1 << 2, + SMTPAUTH_PLAIN = 1 << 3 +} SMTPAuthType; + +typedef enum +{ + SMTP_READY, + SMTP_CONNECTED, + SMTP_HELO, + SMTP_EHLO, + SMTP_STARTTLS, + SMTP_FROM, + SMTP_AUTH, + SMTP_AUTH_PLAIN, + SMTP_AUTH_LOGIN_USER, + SMTP_AUTH_LOGIN_PASS, + SMTP_AUTH_CRAM_MD5, + SMTP_RCPT, + SMTP_DATA, + SMTP_SEND_DATA, + SMTP_EOM, + SMTP_RSET, + SMTP_QUIT, + SMTP_ERROR, + SMTP_DISCONNECTED, + + N_SMTP_PHASE +} SMTPState; + +struct _SMTPSession +{ + Session session; + + SMTPState state; + + gboolean tls_init_done; + + gchar *hostname; + + gchar *user; + gchar *pass; + + gchar *from; + GSList *to_list; + GSList *cur_to; + + FILE *send_data_fp; + gint send_data_len; + + SMTPAuthType avail_auth_type; + SMTPAuthType forced_auth_type; + SMTPAuthType auth_type; + + SMTPErrorValue error_val; + gchar *error_msg; +}; + +Session *smtp_session_new (void); + +#endif /* __SMTP_H__ */ -- cgit v1.3