h&=5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{| } ~                                                                                                                                                                         Safe-Inferredk Safe-Inferred HaskellNet%Authorization types supported by the $https://www.ietf.org/rfc/rfc4954.txtRFC5954    Safe-Inferred  HaskellNetA byte string stream. HaskellNetRead a line from the stream. Should return the line which was read, including the newline. HaskellNetRead the specified number of bytes from the stream. Should block until the requested bytes can be read. HaskellNetWrite the specified byte string to the stream. Should flush the stream after writing. HaskellNetFlush the stream. HaskellNetClose the stream. HaskellNetIs the stream open? HaskellNetIs data available? HaskellNet/Build a byte string stream which operates on a .   Safe-Inferred Safe-Inferred " HaskellNetAPOP key !"# !#" Safe-Inferred 7$%&'()*+,-./01234'()*+,-./01234$%& Safe-Inferred .7 HaskellNetconnecting to the pop3 server specified by the hostname and port number8 HaskellNetconnecting to the pop3 server specified by the hostname. 110 is used for the port number.9 HaskellNet*connecting to the pop3 server via a stream HaskellNetparse mutiline of response: HaskellNetsendCommand sends a pop3 command via a pop3 connection. This action is too generic. Use more specific actions789:;<=>?@ABCDEFGHIJKL789:I;<=?>@ABCDEFGHJKL Safe-Inferred"?! M HaskellNet0Exceptions that can happen during communication.N HaskellNet+Reply code was not in the list of expected.Command - command that was sent. [ReplyCode] -- list of expected codes ReplyCode" -- the code that we have received ByteString+ -- additional data returned by the server.O HaskellNet:The server didn't accept the start of the message deliveryP HaskellNet9The server does not support current authentication methodQ HaskellNet6Can't send email because no recipients were specified.R HaskellNet0Received an unexpected greeting from the server.S HaskellNet8Code reply from the server. It's always 3 digit integer.T HaskellNetSMTP commands.>Supports basic and extended SMTP protocol without TLS support.For each command we provide list of the expected reply codes that happens in success and failure cases respectively.U HaskellNetThe HELO command initiates the SMTP session conversation. The client greets the server and introduces itself. As a rule, HELO is attributed with an argument that specifies the domain name or IP address of the SMTP client.Success: 250 Failure: 504, 550V HaskellNetEHLO is an alternative to HELO for servers that support the SMTP service extensions (ESMTP)$Success: 250 Failure: 502, 504, 550W HaskellNet MAIL FROM command initiates a mail transfer. As an argument, MAIL FROM includes a sender mailbox (reverse-path) can accept optional parameters. Success: 250/Failure: 451, 452, 455, 503, 550, 552, 553, 555X HaskellNetThe RCPT TO) command specifies exactly one recipient.Success: 250 2510Failure: 450 451 452 455 503 550 551 552 553 555Y HaskellNet With the DATA command, the client asks the server for permission to transfer the mail data.Success: 250, 354$Failure: 450 451 452 503 550 552 554Client just sends data and after receiving 354 starts streaming email, terminating transfer by sending rn.rn.Z HaskellNetEXPN is used to verify whether a mailing list in the argument exists on the local host. The positive response will specify the membership of the recipients.Success: 250 252Failure: 502 504 550[ HaskellNetVRFY is used to verify whether a mailbox in the argument exists on the local host. The server response includes the user@s mailbox and may include the user@s full name.Success: 250 251 252Failure: 502 504 550 551 553\ HaskellNet With the HELP command, the client requests a list of commands the server supports, may request help for specific commandSuccess: 211 214Failure: 502 504] HaskellNetAuthorization support^ HaskellNetNOOP2 can be used to verify if the connection is alive Success: 250_ HaskellNetRSET Resets the state Success: 250` HaskellNetQUIT asks server to close connection. Client should terminate the connection when receives status. Success: 221a HaskellNet,All communication with server is done using SMTPConnection value.c HaskellNet!Connection communication channel.d HaskellNet&Server properties as per reply to the V request.e HaskellNetSafe wrapper for running a client command over the SMTP connection.Note on current behaviorWe allow the command to fail several times, retry happens in case if we have received unexpected status code. In this case message will be sent again. However in case of other synchronous or asynchronous exceptions there will be no retries.It case if number of retries were exceeded connection will be closed automatically.The behaviors in notes will likely be changed in the future and should not be relied upon, see issues 76, 77.f HaskellNetRead response from the stream. Response consists of the code and one or more lines of data.In case if it's not the last line of reply the code is followed by the  sign. We return the code and all the data with the code stripped.Eg.: "250-8BITMIME\r" "250-PIPELINING\r" "250-SIZE 42991616\r" "250-AUTH LOGIN PLAIN XOAUTH2\r" "250-DSN\r" "250 ENHANCEDSTATUSCODES\r" Returns: (250, "8BITMIME\nPIPELININGnSIZE 42991616\nAUTH LOGIN PLAIN XOAUTH2\nDSN\nENHANCEDSTATUSCODES") Throws M.g HaskellNetSends a T to the server. Function that performs all the logic for sending messages. Throws an exception if something goes wrong.Throws M.h HaskellNetSends quit to the server. Connection must be terminated afterwards, i.e. it's not allowed to issue any command on this connection.i HaskellNetTerminates the connection. Quit command is not send in this case. It's safe to issue this command at any time if the connection is still open.j HaskellNetGracefully closes SMTP connection. Connection should be in available state. First it sends quit command and then closes connection itself. Connection should not be used after this command exits (even if it exits with an exception). This command may throw an exception in case of network failure or protocol failure when sending `; command. If it happens connection nevertheless is closed.k HaskellNetSends a mail to the server.Throws M. HaskellNetJust a crlf constant. HaskellNet!Write a message ending with ctlf.e HaskellNet Connection HaskellNetSupported command HaskellNetNumber of allowed retries HaskellNetList of accepted codes HaskellNetResulting datak HaskellNet sender mail HaskellNet receivers HaskellNetdata#MNOPQRST]^`_UVWXYZ[\abcdefghijk#abcdT]^`_UVWXYZ[\MNOPQRSefgkijh Safe-Inferred/ p HaskellNet?connecting SMTP server with the specified name and port number.q HaskellNet;connecting SMTP server with the specified name and port 25.r HaskellNet3Create SMTPConnection from already connected StreamThrows CantConnect :: SMTPException" in case if got illegal greeting.s HaskellNet1Authenticates user on the remote server. Returns 3 if the authentication succeeds, otherwise returns .Usage example: 2{-# LANGUAGE OverloadedStrings #-} authSucceed <- s 0 "username" "password" conn if authSucceed then w "receiver@server.com" "sender@server.com" "subject" "Hello!" conn else  "Authentication failed." t HaskellNett opens a connection to the given port server and performs an IO action with the connection, and then close it.a is freed once * action scope is finished, it means that a* value should not escape the action scope.u HaskellNetu is similar to t, except that it does not require port number and connects to the default SMTP port @ 25.v HaskellNetv is similar to t, except that its argument is a Stream data instead of hostname and port number. Using this function you can embed connections maintained by the other libraries or add debug info in a common way.&Using this function you can create an a from an already opened connection stream. See more info on the BStream abstraction in the Network.HaskellNet.BSStream module.w HaskellNetSend a plain text mail. DEPRECATED . Instead of +sendPlainTextMail to from subject plainBody use: mail = . to from subject plainBody sendMail mail conn x HaskellNetSend a mime mail. The attachments are included with the file path. DEPRECATED . Instead of ;sendMimeMail to from subject plainBody htmlBody attachments use: mail <-  to from subject plainBody htmlBody attachments sendMail mail conn y HaskellNet>Send a mime mail. The attachments are included with in-memory  ByteString. DEPRECATED . Instead of ;sendMimeMail to from subject plainBody htmlBody attachments use: let mail = Network.Mail.Mime.simpleMailInMemory to from subject plainBody htmlBody attachments sendMail mail conn z HaskellNet3Sends email in generated using 'mime-mail' package.Throws  UserError :: $ if recipient address not specified.{ HaskellNetSends email using ! type from the mime-mail package.Sender is taken from the  field of the mail0. Message is sent to all the recipients in the , ,  fields. But < emails are not visible to other recipients as it should be.p HaskellNetname of the server HaskellNet port numberq HaskellNetname of the serverw HaskellNetreceiver HaskellNetsender HaskellNetsubject HaskellNetbody HaskellNetthe connectionx HaskellNetreceiver HaskellNetsender HaskellNetsubject HaskellNetplain text body HaskellNet html body HaskellNet#attachments: [(content_type, path)]y HaskellNetreceiver HaskellNetsender HaskellNetsubject HaskellNetplain text body HaskellNet html body HaskellNet1attachments: [(content_type, file_name, content)]MNOPQRaijpqrstuvwxyz{atuvs{wxyzpqrijMNOPQR Safe-Inferred/e Safe-Inferred/211  Safe-Inferred1 HaskellNet*the query data type for the status command HaskellNet%the number of messages in the mailbox HaskellNet/the number of messages with the Recent flag set HaskellNet/the next unique identifier value of the mailbox HaskellNet3the unique identifier validity value of the mailbox HaskellNet/the number of messages with the Unseen flag set>|}~>|}~  Safe-Inferred2  Safe-Inferred3U    Safe-Inferred3 !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM#NOPQRSTUVWXYZ[\]^_`ab7cdefghij;<B=klmnopJqrstuvwxyzI{|}~                                                                                1 3                                                       I     ! {        U                      )HaskellNet-0.6.0.2-CWKYFvJAMwfDMD4EiIMeuM Network.HaskellNet.SMTP.InternalNetwork.HaskellNet.AuthNetwork.HaskellNet.BSStreamNetwork.HaskellNet.Debug"Network.HaskellNet.POP3.ConnectionNetwork.HaskellNet.POP3.TypesNetwork.HaskellNet.POP3Network.HaskellNet.SMTPNetwork.HaskellNet.IMAP.Types"Network.HaskellNet.IMAP.ConnectionNetwork.HaskellNet.IMAP.ParsersNetwork.HaskellNet.IMAPNetwork.CompatText.Packrat.PosText.Packrat.Parse&mime-mail-0.5.1-D4rm7ctGsZlIeoaJfWvFRJNetwork.Mail.Mime addressEmail addressNameAddressAuthTypePLAINLOGINCRAM_MD5PasswordUserName b64Encode b64Decode showOctethashMD5hmacMD5plainlogincramMD5auth$fShowAuthType $fEqAuthTypeBSStream bsGetLinebsGetbsPutbsFlushbsClosebsIsOpenbsWaitForInputhandleToStream debugStreamPOP3ConnectionstreamapopKey newConnectionResponseOkErrCommandUSERPASSAPOPAUTHNOOPQUITSTATLISTDELERETRRSETTOPUIDL $fEqResponse$fShowResponseconnectPop3Port connectPop3 connectStream sendCommanduserpassuserPassapopstatdeleretrtoprsetallListlistallUIDLsuidl closePop3 doPop3PortdoPop3 doPop3Stream SMTPExceptionUnexpectedReply NotConfirmedAuthNegotiationFailed NoRecipientsUnexpectedGreeting ReplyCodeHELOEHLOMAILRCPTDATAEXPNVRFYHELPSMTPConnectionSMTPCbsstream _response tryCommand parseResponsequitSMTP closeSMTPgracefullyCloseSMTP sendMailData$fExceptionSMTPException$fShowSMTPException $fShowCommand $fEqCommandconnectSMTPPort connectSMTP authenticate doSMTPPortdoSMTP doSMTPStreamsendPlainTextMail sendMimeMail sendMimeMail' sendMimeMail2sendMail RespDerivsdvFlagsadvTagadvCharadvPos MailboxStatusMESSAGESRECENTUIDNEXT UIDVALIDITYUNSEENServerResponseOKNOBADPREAUTH StatusCodeALERT BADCHARSET CAPABILITY_scPARSEPERMANENTFLAGS READ_ONLY READ_WRITE TRYCREATE UIDNEXT_scUIDVALIDITY_sc UNSEEN_sc MboxUpdateexistsrecent Attribute NoinferiorsNoselectMarkedUnmarked OtherAttrFlagSeenAnsweredFlaggedDeletedDraftRecentKeyword MailboxInfoMboxInfo_mailbox_exists_recent_flags_permanentFlags _isWritable_isFlagWritable_uidNext _uidValidityCharsetUID MailboxName emptyMboxInfo $fShowFlag$fDerivsRespDerivs$fShowMailboxStatus$fReadMailboxStatus$fEqMailboxStatus$fEqServerResponse$fShowServerResponse$fEqStatusCode$fShowStatusCode$fShowMboxUpdate$fEqMboxUpdate$fShowAttribute $fEqAttribute$fShowMailboxInfo$fEqMailboxInfo$fEqFlagIMAPConnectionmailboxflagspermanentFlags isWritableisFlagWritableuidNext uidValiditywithNextCommandNumsetMailboxInfomodifyMailboxInfoevaleval'pNone pCapabilitypListpLsubpStatuspExpungepSearchpSelectpFetch FlagsQuery ReplaceFlags PlusFlags MinusFlags SearchQueryALLsFLAGUNFLAGBCCsBEFOREsBODYsCCsFROMsHEADERsLARGERsNEWsNOTsOLDsONsORs SENTBEFOREsSENTONs SENTSINCEsSINCEsSMALLERsSUBJECTsTEXTsTOsUIDsconnectIMAPPort connectIMAPidlenoop capabilitylogoutselectexaminecreatedeleterename subscribe unsubscribelsubstatusappendcheckcloseexpungesearchfetch fetchHeader fetchSizefetchHeaderFieldsfetchHeaderFieldsNot fetchFlagsfetchR fetchByStringfetchByStringRstorecopy$fShowSearchQuery connectTofirstSuccessfultryIObaseGHC.IO.Handle.TypesHandle responseMLGHC.Num-crlf bsPutCrLfghc-prim GHC.TypesTrueFalse System.IOprintIO simpleMail' simpleMailGHC.IO.ExceptionIOErrorMailmailFrommailTomailCcmailBccPosposColposLineposFilenextPos showPosRelDerivsdvChardvPosParserResultNoParseParsed ParseError errorMessageserrorPosMessageExpected<|>satisfy notFollowedByoptionaloptionmanymany1countsepBy1sepByendByendBy1 sepEndBy1sepEndBychainl1chainlchainr1chainrchoicemanyTillbetweenfailAt joinErrors nullErrorexpErrormsgErroreofErrorexpected unexpectedanyCharcharoneOfnoneOfcharIfstring stringFromupperlowerletteralphaNumdigithexDigitoctDigitnewlinetabspacespaceseof getDerivs setDerivsgetPosdvString