úÎ36.A>      !"#$%&'()*+,-./0123456789:;<=+234JStep 1. Caller must output any lines queued up in this list. They do not 5 have end-of-line characters, so the caller must add "\r\n" on the ( end (as required by RFC2821 - not just "\n"). 5IStep 2. When sends are completed, the caller should wait for a line from  the SMTP server, strip the "\n"& end-of-line characters, and pass the ' line to this function for processing. 6EStep 3. Check if this is True, which indicates that the SMTP session = has completed successfully and there is no more work to do. 7IStep 4. Check if this is Just err, which indicates that a protocol error ? has occurred, and that the caller must terminate the session. 8OA list containing a failure status for each message that has been sent so far, @ where each element corresponds to one in the list of messages. G If the SMTP session fails part-way through, this list is likely to be ' shorter than the input messages list.  Nothing means success, and Just x! is a failure status returned by  the SMTP server. >?@ABCDEFGHIReceive an SMTP reply, e.g.  250-worked  250-like  250 a charm JKLM9HConstruct a pure state machine for an SMTP client session. Caller must  handle I/$O. The message body may use either "\n" or "\r\n" for an  end-of-line marker. !Domain name used in EHLO command List of messges to send NOPQRSTUVWXYZ[\]^_`:  !"#$%&'()*+,-./0123456789:92345678! #"*$%&'()1+,-./0 23456783456789:TAn exception indicating a communications failure at the level of the SMTP protocol. ;<ISend a list of email messages to an SMTP server. Throws SMTPException on . failure at the communication protocol level. LThe optional IORef is used to store a list of statuses for messages sent so Q far, where Nothing means success. The list elements correspond to the elements N of the input message list. If the caller catches an exception, this list is Q likely to be shorter than the input message list, and so it gives an indication ' of how many messages were dispatched.  The message body may use either "\n" or "\r\n" for an end-of-line D marker and in either case it will be sent correctly to the server. 5For storing failure statuses of messages sent so far Domain name for EHLO command Network address of SMTP server List of messages to send =ILike sendSMTP but takes an additional function for logging all input and ! output for diagnostic purposes. Diagnostic log function 5For storing failure statuses of messages sent so far Domain name for EHLO command Network address of SMTP server List of messages to send 6  !"#$%&'()*+,-./01:;<=6<=:;! #"*$%&'()1+,-./0 :;;<=a      !"#$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#566789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcSMTPClient-0.3Network.SMTP.ClientSessionNetwork.SMTP.Client hsemail-1.3%Text.ParserCombinators.Parsec.Rfc2822 nameAddr_addr nameAddr_nameNameAddrMessage OptionalFieldFromSender ReturnPathReplyToToCcBcc MessageID InReplyTo ReferencesSubjectCommentsKeywordsDate ResentDate ResentFrom ResentSenderResentToResentCc ResentBccResentMessageID ResentReplyToReceived ObsReceivedField%Text.ParserCombinators.Parsec.Rfc2821Reply SmtpReplyCodeSmtpCodeUnused0PreliminarySuccessSuccessIntermediateSuccessTransientFailurePermanentFailure SuccessCodeSyntax Information Connection Unspecified3 Unspecified4 MailSystemCategory SMTPState smtpOutQueue smtpReceive smtpSuccess smtpFailure smtpStatusessmtpClientSession SMTPExceptionsendSMTP sendSMTP'send nullReceivereceivefailsuccessequalscheckcleanUp maybeReadfor putStatuses receiveReply equalsMailOK checkMailOKcheckConnectionOK equalsDataOKtalk atomAlloweddotAtomAllowed addr_spec angle_addrmsg_idatom_or_quoteddotatom_or_quoted quoted_stringdotatom_or_domain_literaldomain_literal name_addr address_list formatMessageindent formatField formatDateformatTimeZonepairs