#include "utils.h"
#include "gtkutils.h"
-#define SMTP_PORT 25
-#if USE_SSL
-#define SSMTP_PORT 465
-#endif
-
typedef struct _SendProgressDialog SendProgressDialog;
struct _SendProgressDialog
gboolean cancelled;
};
-static gint send_message_local (const gchar *command, FILE *fp);
-
-static gint send_message_smtp (PrefsAccount *ac_prefs, GSList *to_list,
- FILE *fp);
-
#if USE_SSL
static SockInfo *send_smtp_open (const gchar *server, gushort port,
const gchar *domain, gboolean use_smtp_auth,
return val;
}
-static gint send_message_local(const gchar *command, FILE *fp)
+gint send_message_local(const gchar *command, FILE *fp)
{
FILE *pipefp;
gchar buf[BUFFSIZE];
} \
}
-static gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list,
+gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list,
FILE *fp)
{
SockInfo *smtp_sock = NULL;
gchar buf[BUFFSIZE];
gushort port;
gchar *domain;
+ gchar *user = NULL;
gchar *pass = NULL;
GSList *cur;
gint size;
domain = ac_prefs->set_domain ? ac_prefs->domain : NULL;
if (ac_prefs->use_smtp_auth) {
- if (ac_prefs->passwd)
- pass = ac_prefs->passwd;
- else if (ac_prefs->tmp_pass)
- pass = ac_prefs->tmp_pass;
- else {
- pass = send_query_password(ac_prefs->smtp_server,
- ac_prefs->userid);
- if (!pass) pass = g_strdup("");
- ac_prefs->tmp_pass = pass;
+ if (ac_prefs->smtp_userid) {
+ user = ac_prefs->smtp_userid;
+ if(ac_prefs->smtp_passwd)
+ pass = ac_prefs->smtp_passwd;
+ else if (ac_prefs->tmp_pass)
+ pass = ac_prefs->tmp_pass;
+ else {
+ pass = send_query_password(ac_prefs->smtp_server,
+ ac_prefs->smtp_userid);
+ if (!pass) pass = g_strdup("");
+ ac_prefs->tmp_pass = pass;
+ }
+ } else {
+ user = ac_prefs->userid;
+ if (ac_prefs->passwd) {
+ pass = ac_prefs->passwd;
+ } else if (ac_prefs->tmp_pass)
+ pass = ac_prefs->tmp_pass;
+ else {
+ pass = send_query_password(ac_prefs->smtp_server,
+ ac_prefs->userid);
+ if (!pass) pass = g_strdup("");
+ ac_prefs->tmp_pass = pass;
+ }
}
}
GTK_EVENTS_FLUSH();
SEND_EXIT_IF_NOTOK
- (smtp_from(smtp_sock, ac_prefs->address, ac_prefs->userid,
+ (smtp_from(smtp_sock, ac_prefs->address, user,
pass, ac_prefs->use_smtp_auth),
"sending MAIL FROM");