1 typedef enum _eSMTP_C_States {
16 typedef struct _stmp_out_msg {
25 struct ares_mx_reply *AllMX;
26 struct ares_mx_reply *CurrMX;
29 const char *LookupHostname;
33 DNSQueryParts MxLookup;
34 DNSQueryParts HostLookup;
35 struct hostent *OneMX;
39 ParsedURL *pCurrRelay;
41 const char *envelope_from;
50 typedef eNextState (*SMTPReadHandler)(SmtpOutMsg *Msg);
51 typedef eNextState (*SMTPSendHandler)(SmtpOutMsg *Msg);
53 SMTPReadHandler ReadHandlers[eMaxSMTPC];
54 SMTPSendHandler SendHandlers[eMaxSMTPC];
55 const ConstStr ReadErrors[eMaxSMTPC];
56 const double SMTP_C_ReadTimeouts[eMaxSMTPC];
57 const double SMTP_C_SendTimeouts[eMaxSMTPC];
58 const double SMTP_C_ConnTimeout;
60 #define F_RELAY (1<<0) /* we have a Relay host configuration */
61 #define F_HAVE_FALLBACK (1<<1) /* we have a fallback host configuration */
62 #define F_FALLBACK (1<<2)
63 #define F_HAVE_MX (1<<3) /* we have a list of mx records to go through. */
64 #define F_DIRECT (1<<4) /* no mx record found, trying direct connect. */
67 int smtp_resolve_recipients(SmtpOutMsg *SendMsg);