1topic "SMTP"; 2[2 $$0,0#00000000000000000000000000000000:Default] 3[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] 4[l288;2 $$2,2#27521748481378242620020725143825:desc] 5[0 $$3,0#96390100711032703541132217272105:end] 6[H6;0 $$4,0#05600065144404261032431302351956:begin] 7[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] 8[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] 9[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] 10[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] 11[b42;2 $$9,9#13035079074754324216151401829390:normal] 12[{_}%EN-US 13[ {{10000@(113.42.0) [s0; [*@7;4 Smtp]]}}&] 14[s0;i448;a25;kKO9;@(0.0.255)%- &] 15[s1;:Smtp`:`:class:%- [@(0.0.255)3 class][3 _][*3 Smtp][3 _:_][@(0.0.255)3 public][3 _][*@3;3 TcpSoc 16ket]&] 17[s2; Sends emails using SMTP protocol.&] 18[s9; &] 19[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] 20[s3;%- &] 21[s5;:Smtp`:`:RequestTimeout`(int`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* RequestTimeout]([@(0.0.255) i 22nt]_[*@3 ms])&] 23[s2; Total request timeout in milliseconds. Default is 120000 (2 24minutes).&] 25[s3; &] 26[s4; &] 27[s5;:Smtp`:`:Host`(const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Host]([@(0.0.255) con 28st]_[_^String^ String][@(0.0.255) `&]_[*@3 h])&] 29[s2; SMTP host.&] 30[s3; &] 31[s4; &] 32[s5;:Smtp`:`:Port`(int`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Port]([@(0.0.255) int]_[*@3 p])&] 33[s2; SMTP host port. If Null, 25 is used for normal SMTP, 465 for 34SMTPS (using SSL), and 587 for SMTPS (using STARTTLS).&] 35[s3; &] 36[s4; &] 37[s5;:Smtp`:`:SSL`(bool`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* SSL]([@(0.0.255) bool]_[*@3 b]_`=_ 38[@(0.0.255) true])&] 39[s2; Activates SMTPS mode (using SSL). &] 40[s6; Requires Core/SSL package.&] 41[s3; &] 42[s4;%- &] 43[s5;:Upp`:`:Smtp`:`:StartTLS`(bool`):%- [_^Upp`:`:Smtp^ Smtp][@(0.0.255) `&]_[* StartTLS]([@(0.0.255) b 44ool]_[*@3 b]_`=_[@(0.0.255) true])&] 45[s2; Activates SMTPS mode (using STARTTLS). &] 46[s6; Requires Core/SSL package.&] 47[s3; &] 48[s4;%- &] 49[s5;:Smtp`:`:Auth`(const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Aut 50h]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 user], [@(0.0.255) const]_[_^String^ S 51tring][@(0.0.255) `&]_[*@3 pwd])&] 52[s2; Sets username and password.&] 53[s3; &] 54[s4;%- &] 55[s5;:Smtp`:`:From`(const String`&`,const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `& 56]_[* From]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 email], 57[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name]_`=_Null, 58[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 sender]_`=_Null)&] 59[s2; Sets the sender.&] 60[s3; &] 61[s4; &] 62[s5;:Smtp`:`:To`(const String`&`,const String`&`,AS`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* T 63o]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 email], 64[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name], AS_[*@3 a]_`=_TO)&] 65[s2; Sets recipient. Can be called multiple times to add any number 66of recipients. Type of recipient is defined as [%-*@3 a], can be 67one of Smtp`::TO, Smtp`::BC and Smtp`::BCC, correspening to normal 68email recipient types.&] 69[s3; &] 70[s4; &] 71[s5;:Smtp`:`:To`(const String`&`,AS`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* To]([@(0.0.255) con 72st]_[_^String^ String][@(0.0.255) `&]_[*@3 email], AS_[*@3 a]_`=_TO)&] 73[s2; Same as To([%-*@3 email], Null, [%-*@3 a]).&] 74[s3; &] 75[s4; &] 76[s5;:Smtp`:`:Cc`(const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Cc]([@(0.0.255) c 77onst]_[_^String^ String][@(0.0.255) `&]_[*@3 email], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& 78]_[*@3 name]_`=_Null)&] 79[s2; Same as To([%-*@3 email], [%-*@3 name], Smtp`::CC).&] 80[s3; &] 81[s4; &] 82[s5;:Smtp`:`:Bcc`(const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Bcc]( 83[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 email], [@(0.0.255) const]_[_^String^ S 84tring][@(0.0.255) `&]_[*@3 name]_`=_Null)&] 85[s2; Same as To([%-*@3 email], [%-*@3 name], Smtp`::BCC).&] 86[s3; &] 87[s4; &] 88[s5;:Smtp`:`:ReplyTo`(const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* R 89eplyTo]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 email], 90[@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 name]_`=_Null)&] 91[s2; Sets the reply address.&] 92[s3; &] 93[s4; &] 94[s5;:Smtp`:`:TimeSent`(Time`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* TimeSent]([_^Time^ Time]_[*@3 t 95])&] 96[s2; Sets the sent time attribute of email.&] 97[s3; &] 98[s4; &] 99[s5;:Smtp`:`:Subject`(const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Subject]([@(0.0.255) c 100onst]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] 101[s2; Sets the subject of email.&] 102[s3; &] 103[s4; &] 104[s5;:Smtp`:`:Body`(const String`&`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* Bod 105y]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s], [@(0.0.255) const]_[_^String^ S 106tring][@(0.0.255) `&]_[*@3 mime`_]_`=_Null)&] 107[s2; Adds email body with specified MIME time. Can be called multiple 108times to add multiple bodies. Null [%-*@3 mime`_] corresponds to 109`"text/plain`" with current default charset.&] 110[s3; &] 111[s4; &] 112[s5;:Smtp`:`:AttachFile`(const char`*`,const char`*`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* A 113ttachFile]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 filename], [@(0.0.255) const]_[@(0.0.255) c 114har]_`*[*@3 mime]_`=_[@3 0])&] 115[s2; Attaches a file to email.&] 116[s3; &] 117[s4; &] 118[s5;:Smtp`:`:Attach`(const char`*`,const String`&`,const char`*`):%- [_^Smtp^ Smtp][@(0.0.255) `& 119]_[* Attach]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 name], [@(0.0.255) const]_[_^String^ S 120tring][@(0.0.255) `&]_[*@3 data], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 mime]_`=_[@3 0]) 121&] 122[s2; Attaches a String as file attachment..&] 123[s3; &] 124[s4;%- &] 125[s5;:Smtp`:`:AddHeader`(const String`&`):%- Smpt[@(0.0.255) `&]_[* AddHeader]([@(0.0.255) c 126onst]_[_^String^ String][@(0.0.255) `&]_[*@3 text])&] 127[s2; Adds additional [%-*@3 text] message header. Text should [* not] 128be terminated by CRLF.&] 129[s3; &] 130[s4;%- &] 131[s5;:Smtp`:`:AddHeader`(const char`*`,const String`&`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* A 132ddHeader]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], [@(0.0.255) const]_[_^String^ St 133ring][@(0.0.255) `&]_[*@3 txt])&] 134[s2; Adds additional field [%-*@3 id] with value [%-*@3 txt] to header.&] 135[s3; &] 136[s4; &] 137[s5;:Smtp`:`:New`(`):%- [_^Smtp^ Smtp][@(0.0.255) `&]_[* New]()&] 138[s2; Restarts Smtp for sending of next email (resets all addresses, 139bodies, attachments, subject).&] 140[s3; &] 141[s4;%- &] 142[s5;:Smtp`:`:GetMessage`(`):%- [_^String^ String]_[* GetMessage]()&] 143[s2; Returns the message in RFC`-822 format, without sending it.&] 144[s3;%- &] 145[s4;%- &] 146[s5;:Smtp`:`:GetMessageID`(`):%- [_^String^ String]_[* GetMessageID]()&] 147[s2; Returns the `"Message`-ID`" header of current message, without 148`"<`", `">`" characters. New Message ID is generated by constructor 149or New method. Domain part is taken from message sender; correct 150result can therefore obtained only after `'From`' method was 151called.&] 152[s3;%- &] 153[s4;%- &] 154[s5;:Smtp`:`:Send`(const String`&`):%- [@(0.0.255) bool]_[* Send]([@(0.0.255) const]_[_^String^ S 155tring][@(0.0.255) `&]_[*@3 message])&] 156[s2; Send the raw message in RFC`-822 format. Note that sender and 157recipient of message has to be defined using From, To methods 158even as they are contained in message.&] 159[s3; &] 160[s4; &] 161[s5;:Smtp`:`:Send`(`):%- [@(0.0.255) bool]_[* Send]()&] 162[s2; Sends email. Returns true on success. Same as Send(GetMessage()), 163except that this form is able to send attachments in chunks.&] 164[s3; &] 165[s4; &] 166[s5;:Smtp`:`:GetError`(`)const:%- [_^String^ String]_[* GetError]()_[@(0.0.255) const]&] 167[s2; Returns description of last error.&] 168[s3; &] 169[s4; &] 170[s5;:Smtp`:`:Smtp`(`):%- [* Smtp]()&] 171[s2; Default constructor.&] 172[s3; &] 173[s4; &] 174[s5;:Smtp`:`:Trace`(bool`):%- [@(0.0.255) static] [@(0.0.255) void]_[* Trace]([@(0.0.255) boo 175l]_[*@3 b]_`=_[@(0.0.255) true])&] 176[s2; Activates logging of SMTP.&] 177[s3; &] 178[s0; ]]