ofs | hex dump | ascii |
---|
0000 | 70 61 63 6b 61 67 65 2e 78 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | package.xml..................... |
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0060 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 20 20 32 34 20 00 20 20 20 20 | ....100644....1750......24...... |
0080 | 20 20 31 30 34 30 30 20 20 37 36 35 37 35 32 32 37 36 34 20 20 20 36 33 36 35 20 00 00 00 00 00 | ..10400..7657522764...6365...... |
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0200 | 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 49 53 | <?xml.version="1.0".encoding="IS |
0220 | 4f 2d 38 38 35 39 2d 31 22 20 3f 3e 0a 3c 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 3d 22 31 | O-8859-1".?>.<package.version="1 |
0240 | 2e 30 22 3e 0a 20 20 3c 6e 61 6d 65 3e 4e 65 74 5f 53 4d 54 50 3c 2f 6e 61 6d 65 3e 0a 20 20 3c | .0">...<name>Net_SMTP</name>...< |
0260 | 73 75 6d 6d 61 72 79 3e 50 72 6f 76 69 64 65 73 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 | summary>Provides.an.implementati |
0280 | 6f 6e 20 6f 66 20 74 68 65 20 53 4d 54 50 20 70 72 6f 74 6f 63 6f 6c 3c 2f 73 75 6d 6d 61 72 79 | on.of.the.SMTP.protocol</summary |
02a0 | 3e 0a 20 20 3c 64 65 73 63 72 69 70 74 69 6f 6e 3e 50 72 6f 76 69 64 65 73 20 61 6e 20 69 6d 70 | >...<description>Provides.an.imp |
02c0 | 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 53 4d 54 50 20 70 72 6f 74 6f 63 6f 6c | lementation.of.the.SMTP.protocol |
02e0 | 20 75 73 69 6e 67 20 50 45 41 52 27 73 20 4e 65 74 5f 53 6f 63 6b 65 74 20 63 6c 61 73 73 2e 3c | .using.PEAR's.Net_Socket.class.< |
0300 | 2f 64 65 73 63 72 69 70 74 69 6f 6e 3e 0a 20 20 3c 6d 61 69 6e 74 61 69 6e 65 72 73 3e 0a 20 20 | /description>...<maintainers>... |
0320 | 20 20 3c 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 73 65 72 3e 63 68 61 67 65 | ..<maintainer>.......<user>chage |
0340 | 6e 62 75 3c 2f 75 73 65 72 3e 0a 20 20 20 20 20 20 3c 6e 61 6d 65 3e 43 68 75 63 6b 20 48 61 67 | nbu</user>.......<name>Chuck.Hag |
0360 | 65 6e 62 75 63 68 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 20 20 3c 65 6d 61 69 6c 3e 63 68 75 63 6b | enbuch</name>.......<email>chuck |
0380 | 40 68 6f 72 64 65 2e 6f 72 67 3c 2f 65 6d 61 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f 6c 65 3e 6c | @horde.org</email>.......<role>l |
03a0 | 65 61 64 3c 2f 72 6f 6c 65 3e 0a 20 20 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 | ead</role>.....</maintainer>.... |
03c0 | 20 3c 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 73 65 72 3e 6a 6f 6e 3c 2f 75 | .<maintainer>.......<user>jon</u |
03e0 | 73 65 72 3e 0a 20 20 20 20 20 20 3c 6e 61 6d 65 3e 4a 6f 6e 20 50 61 72 69 73 65 3c 2f 6e 61 6d | ser>.......<name>Jon.Parise</nam |
0400 | 65 3e 0a 20 20 20 20 20 20 3c 65 6d 61 69 6c 3e 6a 6f 6e 40 70 68 70 2e 6e 65 74 3c 2f 65 6d 61 | e>.......<email>jon@php.net</ema |
0420 | 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f 6c 65 3e 6c 65 61 64 3c 2f 72 6f 6c 65 3e 0a 20 20 20 20 | il>.......<role>lead</role>..... |
0440 | 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 73 3e 0a 20 | </maintainer>...</maintainers>.. |
0460 | 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 32 2e 33 3c 2f 76 | .<release>.....<version>1.2.3</v |
0480 | 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 35 2d 31 31 3c 2f 64 61 | ersion>.....<date>2003-05-11</da |
04a0 | 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 6e 73 65 3e 50 48 50 20 4c 69 63 65 6e 73 65 3c 2f 6c 69 | te>.....<license>PHP.License</li |
04c0 | 63 65 6e 73 65 3e 0a 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e | cense>.....<state>stable</state> |
04e0 | 0a 20 20 20 20 3c 6e 6f 74 65 73 3e 42 6f 74 68 20 32 33 35 20 28 41 75 74 68 65 6e 74 69 63 61 | .....<notes>Both.235.(Authentica |
0500 | 74 69 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 29 20 61 6e 64 20 35 30 33 20 28 45 72 72 6f 72 3a | tion.successful).and.503.(Error: |
0520 | 20 61 6c 72 65 61 64 79 20 61 75 74 68 65 6e 74 69 63 61 74 65 64 29 20 61 72 65 20 6e 6f 77 20 | .already.authenticated).are.now. |
0540 | 61 63 63 65 70 74 65 64 20 61 73 20 76 61 6c 69 64 20 41 55 54 48 20 72 65 73 70 6f 6e 73 65 73 | accepted.as.valid.AUTH.responses |
0560 | 2e 0a 0a 35 30 33 20 28 45 72 72 6f 72 3a 20 61 6c 72 65 61 64 79 20 61 75 74 68 65 6e 74 69 63 | ...503.(Error:.already.authentic |
0580 | 61 74 65 64 29 20 69 73 20 6e 6f 77 20 63 6f 6e 73 69 64 65 72 65 64 20 61 20 76 61 6c 69 64 20 | ated).is.now.considered.a.valid. |
05a0 | 45 48 4c 4f 20 72 65 73 70 6f 6e 73 65 2e 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 64 65 70 73 | EHLO.response.</notes>.....<deps |
05c0 | 3e 0a 20 20 20 20 20 20 3c 64 65 70 20 74 79 70 65 3d 22 70 6b 67 22 20 72 65 6c 3d 22 68 61 73 | >.......<dep.type="pkg".rel="has |
05e0 | 22 3e 4e 65 74 5f 53 6f 63 6b 65 74 3c 2f 64 65 70 3e 0a 20 20 20 20 3c 2f 64 65 70 73 3e 0a 20 | ">Net_Socket</dep>.....</deps>.. |
0600 | 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 63 6c 61 73 73 22 20 6e 61 6d 65 3d 22 | ...<provides.type="class".name=" |
0620 | 4e 65 74 5f 53 4d 54 50 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d | Net_SMTP"./>.....<provides.type= |
0640 | 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 73 65 74 44 65 | "function".name="Net_SMTP::setDe |
0660 | 62 75 67 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 | bug"./>.....<provides.type="func |
0680 | 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 67 65 74 52 65 73 70 6f 6e 73 | tion".name="Net_SMTP::getRespons |
06a0 | 65 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 | e"./>.....<provides.type="functi |
06c0 | 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 63 6f 6e 6e 65 63 74 22 20 2f 3e 0a | on".name="Net_SMTP::connect"./>. |
06e0 | 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 | ....<provides.type="function".na |
0700 | 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 64 69 73 63 6f 6e 6e 65 63 74 22 20 2f 3e 0a 20 20 20 | me="Net_SMTP::disconnect"./>.... |
0720 | 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d | .<provides.type="function".name= |
0740 | 22 4e 65 74 5f 53 4d 54 50 3a 3a 61 75 74 68 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 | "Net_SMTP::auth"./>.....<provide |
0760 | 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 | s.type="function".name="Net_SMTP |
0780 | 3a 3a 68 65 6c 6f 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 | ::helo"./>.....<provides.type="f |
07a0 | 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 6d 61 69 6c 46 72 6f | unction".name="Net_SMTP::mailFro |
07c0 | 6d 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 | m"./>.....<provides.type="functi |
07e0 | 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 72 63 70 74 54 6f 22 20 2f 3e 0a 20 | on".name="Net_SMTP::rcptTo"./>.. |
0800 | 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d | ...<provides.type="function".nam |
0820 | 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 71 75 6f 74 65 64 61 74 61 22 20 2f 3e 0a 20 20 20 20 3c | e="Net_SMTP::quotedata"./>.....< |
0840 | 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e | provides.type="function".name="N |
0860 | 65 74 5f 53 4d 54 50 3a 3a 64 61 74 61 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 | et_SMTP::data"./>.....<provides. |
0880 | 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a | type="function".name="Net_SMTP:: |
08a0 | 73 65 6e 64 5f 66 72 6f 6d 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 | send_from"./>.....<provides.type |
08c0 | 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 73 6f 6d 6c | ="function".name="Net_SMTP::soml |
08e0 | 5f 66 72 6f 6d 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 | _from"./>.....<provides.type="fu |
0900 | 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 73 61 6d 6c 5f 66 72 6f | nction".name="Net_SMTP::saml_fro |
0920 | 6d 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 | m"./>.....<provides.type="functi |
0940 | 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 72 73 65 74 22 20 2f 3e 0a 20 20 20 | on".name="Net_SMTP::rset"./>.... |
0960 | 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d | .<provides.type="function".name= |
0980 | 22 4e 65 74 5f 53 4d 54 50 3a 3a 76 72 66 79 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 | "Net_SMTP::vrfy"./>.....<provide |
09a0 | 73 20 74 79 70 65 3d 22 66 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 | s.type="function".name="Net_SMTP |
09c0 | 3a 3a 6e 6f 6f 70 22 20 2f 3e 0a 20 20 20 20 3c 70 72 6f 76 69 64 65 73 20 74 79 70 65 3d 22 66 | ::noop"./>.....<provides.type="f |
09e0 | 75 6e 63 74 69 6f 6e 22 20 6e 61 6d 65 3d 22 4e 65 74 5f 53 4d 54 50 3a 3a 69 64 65 6e 74 69 66 | unction".name="Net_SMTP::identif |
0a00 | 79 53 65 6e 64 65 72 22 20 2f 3e 0a 20 20 20 20 3c 66 69 6c 65 6c 69 73 74 3e 0a 20 20 20 20 20 | ySender"./>.....<filelist>...... |
0a20 | 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 | .<file.role="php".baseinstalldir |
0a40 | 3d 22 4e 65 74 22 20 6d 64 35 73 75 6d 3d 22 66 32 33 61 63 38 32 62 37 62 39 39 32 64 35 32 30 | ="Net".md5sum="f23ac82b7b992d520 |
0a60 | 33 32 35 38 30 65 30 35 62 61 62 66 62 61 39 22 20 6e 61 6d 65 3d 22 53 4d 54 50 2e 70 68 70 22 | 32580e05babfba9".name="SMTP.php" |
0a80 | 2f 3e 0a 20 20 20 20 3c 2f 66 69 6c 65 6c 69 73 74 3e 0a 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a | />.....</filelist>...</release>. |
0aa0 | 20 20 3c 63 68 61 6e 67 65 6c 6f 67 3e 0a 20 20 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 | ..<changelog>.....<release>..... |
0ac0 | 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 32 2e 32 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 | ..<version>1.2.2</version>...... |
0ae0 | 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 35 2d 30 32 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c | .<date>2003-05-02</date>.......< |
0b00 | 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 | state>stable</state>.......<note |
0b20 | 73 3e 46 69 78 20 61 20 63 61 6c 6c 2d 74 69 6d 65 20 70 61 73 73 2d 62 79 2d 72 65 66 65 72 65 | s>Fix.a.call-time.pass-by-refere |
0b40 | 6e 63 65 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73 20 72 61 69 73 69 6e 67 20 61 20 77 | nce.problem.that.was.raising.a.w |
0b60 | 61 72 6e 69 6e 67 20 69 66 20 63 61 6c 6c 2d 74 69 6d 65 20 70 61 73 73 2d 62 79 2d 72 65 66 65 | arning.if.call-time.pass-by-refe |
0b80 | 72 65 6e 63 65 20 77 61 73 20 64 69 73 61 62 6c 65 64 2e 0a 20 20 20 20 20 20 0a 3c 2f 6e 6f 74 | rence.was.disabled.........</not |
0ba0 | 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 72 65 6c 65 61 73 65 3e | es>.....</release>.....<release> |
0bc0 | 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 32 2e 31 3c 2f 76 65 72 73 69 6f 6e 3e 0a | .......<version>1.2.1</version>. |
0be0 | 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 34 2d 32 36 3c 2f 64 61 74 65 3e 0a 20 20 | ......<date>2003-04-26</date>... |
0c00 | 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 | ....<state>stable</state>....... |
0c20 | 3c 6e 6f 74 65 73 3e 54 68 65 20 41 75 74 68 5f 53 41 53 4c 20 70 61 63 6b 61 67 65 20 69 73 20 | <notes>The.Auth_SASL.package.is. |
0c40 | 6e 6f 20 6c 6f 6e 67 65 72 20 61 62 73 6f 6c 75 74 65 6c 79 20 72 65 71 75 69 72 65 64 2c 20 62 | no.longer.absolutely.required,.b |
0c60 | 75 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 66 20 69 74 20 69 73 20 61 76 61 69 | ut.it.will.be.used.if.it.is.avai |
0c80 | 6c 61 62 6c 65 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 61 75 74 68 65 6e 74 69 63 | lable...Otherwise,.the.authentic |
0ca0 | 61 74 69 6f 6e 20 6d 65 74 68 6f 64 73 20 74 68 61 74 20 64 65 70 65 6e 64 20 75 70 6f 6e 20 69 | ation.methods.that.depend.upon.i |
0cc0 | 74 20 77 69 6c 6c 20 62 65 20 64 69 73 61 62 6c 65 64 2e 0a 20 20 20 20 20 20 0a 3c 2f 6e 6f 74 | t.will.be.disabled.........</not |
0ce0 | 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 72 65 6c 65 61 73 65 3e | es>.....</release>.....<release> |
0d00 | 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 32 2e 30 3c 2f 76 65 72 73 69 6f 6e 3e 0a | .......<version>1.2.0</version>. |
0d20 | 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 34 2d 30 36 3c 2f 64 61 74 65 3e 0a 20 20 | ......<date>2003-04-06</date>... |
0d40 | 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 | ....<state>stable</state>....... |
0d60 | 3c 6e 6f 74 65 73 3e 2d 20 50 65 72 66 6f 72 6d 20 64 61 74 61 20 71 75 6f 74 69 6e 67 20 69 6e | <notes>-.Perform.data.quoting.in |
0d80 | 20 69 74 73 20 6f 77 6e 20 72 6f 75 74 69 6e 65 3a 20 71 75 6f 74 65 64 61 74 61 28 29 0a 20 20 | .its.own.routine:.quotedata()... |
0da0 | 20 20 20 20 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 | .....</notes>.....</release>.... |
0dc0 | 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 31 2e 32 3c | .<release>.......<version>1.1.2< |
0de0 | 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 32 2d 31 37 | /version>.......<date>2003-02-17 |
0e00 | 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 | </date>.......<state>stable</sta |
0e20 | 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 2d 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e | te>.......<notes>-.Correctly.han |
0e40 | 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 74 68 65 20 73 65 72 76 65 72 27 73 20 | dle.the.case.where.the.server's. |
0e60 | 45 53 4d 54 50 20 72 65 73 70 6f 6e 73 65 20 69 6e 63 6c 75 64 65 73 20 61 20 53 49 5a 45 20 6b | ESMTP.response.includes.a.SIZE.k |
0e80 | 65 79 77 6f 72 64 20 77 69 74 68 20 6e 6f 20 73 70 65 63 69 66 69 63 20 76 61 6c 75 65 2e 0a 20 | eyword.with.no.specific.value... |
0ea0 | 20 20 20 20 20 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 | ......</notes>.....</release>... |
0ec0 | 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 31 2e 31 | ..<release>.......<version>1.1.1 |
0ee0 | 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 31 2d 33 | </version>.......<date>2003-01-3 |
0f00 | 30 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 | 0</date>.......<state>stable</st |
0f20 | 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 2d 20 44 6f 6e 27 74 20 65 6e 66 6f 72 63 | ate>.......<notes>-.Don't.enforc |
0f40 | 65 20 61 20 6d 61 78 69 6d 75 6d 20 6d 65 73 73 61 67 65 20 73 69 7a 65 20 69 66 20 74 68 65 20 | e.a.maximum.message.size.if.the. |
0f60 | 53 49 5a 45 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 7a 65 72 6f 2e 0a 20 20 20 20 20 20 0a 3c | SIZE.parameter.is.zero.........< |
0f80 | 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 72 65 6c 65 | /notes>.....</release>.....<rele |
0fa0 | 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 31 2e 30 3c 2f 76 65 72 73 69 | ase>.......<version>1.1.0</versi |
0fc0 | 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 31 2d 31 38 3c 2f 64 61 74 65 | on>.......<date>2003-01-18</date |
0fe0 | 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 | >.......<state>stable</state>... |
1000 | 20 20 20 20 3c 6e 6f 74 65 73 3e 2d 20 54 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 27 73 20 53 | ....<notes>-.The.SMTP.server's.S |
1020 | 49 5a 45 20 63 61 70 61 62 69 6c 69 74 79 20 69 73 20 6e 6f 77 20 68 6f 6e 6f 72 65 64 2e 0a 2d | IZE.capability.is.now.honored..- |
1040 | 20 49 6d 70 72 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 4d 54 50 20 61 75 74 68 65 | .Improved.support.for.SMTP.authe |
1060 | 6e 74 69 63 61 74 69 6f 6e 20 28 4c 4f 47 49 4e 2c 20 50 4c 41 49 4e 2c 20 43 52 41 4d 2d 4d 44 | ntication.(LOGIN,.PLAIN,.CRAM-MD |
1080 | 35 2c 20 44 49 47 45 53 54 2d 4d 44 35 29 2e 0a 2d 20 4f 76 65 72 68 61 75 6c 65 64 20 74 68 65 | 5,.DIGEST-MD5)..-.Overhauled.the |
10a0 | 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 20 70 61 72 73 69 6e 67 20 73 79 73 74 65 6d 2e | .server.response.parsing.system. |
10c0 | 0a 2d 20 41 64 64 65 64 20 6f 70 74 69 6f 6e 61 6c 20 64 65 62 75 67 67 69 6e 67 20 6f 75 74 70 | .-.Added.optional.debugging.outp |
10e0 | 75 74 20 28 65 6e 61 62 6c 65 64 20 76 69 61 20 73 65 74 44 65 62 75 67 28 29 29 2e 0a 2d 20 41 | ut.(enabled.via.setDebug())..-.A |
1100 | 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 63 61 6e 20 6e 6f 77 20 62 65 20 73 70 65 63 69 66 | .timeout.value.can.now.be.specif |
1120 | 69 65 64 20 66 6f 72 20 74 68 65 20 73 6f 63 6b 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 | ied.for.the.socket.connection... |
1140 | 20 20 20 20 20 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 | ......</notes>.....</release>... |
1160 | 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 2e 31 | ..<release>.......<version>1.0.1 |
1180 | 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 31 2d 30 | </version>.......<date>2003-01-0 |
11a0 | 32 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 | 2</date>.......<state>stable</st |
11c0 | 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 43 6f 72 72 65 63 74 65 64 20 61 6e 20 6f | ate>.......<notes>Corrected.an.o |
11e0 | 66 66 2d 62 79 2d 6f 6e 65 20 62 75 67 20 74 68 61 74 20 63 6f 72 72 75 70 74 65 64 20 74 68 65 | ff-by-one.bug.that.corrupted.the |
1200 | 20 6c 69 73 74 20 6f 66 20 45 53 4d 54 50 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e 0a 20 20 20 | .list.of.ESMTP.capabilities..... |
1220 | 20 20 20 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 | ....</notes>.....</release>..... |
1240 | 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 3c 2f 76 65 | <release>.......<version>1.0</ve |
1260 | 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 32 2d 30 36 2d 31 31 3c 2f 64 | rsion>.......<date>2002-06-11</d |
1280 | 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e | ate>.......<state>stable</state> |
12a0 | 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73 65 20 61 73 | .......<notes>Initial.release.as |
12c0 | 20 50 45 41 52 20 70 61 63 6b 61 67 65 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c | .PEAR.package.</notes>.....</rel |
12e0 | 65 61 73 65 3e 0a 20 20 3c 2f 63 68 61 6e 67 65 6c 6f 67 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a | ease>...</changelog>.</package>. |
1300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1400 | 4e 65 74 5f 53 4d 54 50 2d 31 2e 32 2e 33 2f 53 4d 54 50 2e 70 68 70 00 00 00 00 00 00 00 00 00 | Net_SMTP-1.2.3/SMTP.php......... |
1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1460 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 20 20 32 34 20 00 20 20 20 20 | ....100644....1750......24...... |
1480 | 20 20 36 35 37 31 37 20 20 37 36 35 37 35 32 32 35 34 37 20 20 20 37 36 32 30 20 00 00 00 00 00 | ..65717..7657522547...7620...... |
14a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1600 | 3c 3f 70 68 70 0a 2f 2a 20 76 69 6d 3a 20 73 65 74 20 65 78 70 61 6e 64 74 61 62 20 73 6f 66 74 | <?php./*.vim:.set.expandtab.soft |
1620 | 74 61 62 73 74 6f 70 3d 34 20 74 61 62 73 74 6f 70 3d 34 20 73 68 69 66 74 77 69 64 74 68 3d 34 | tabstop=4.tabstop=4.shiftwidth=4 |
1640 | 3a 20 2a 2f 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | :.*/.//.+----------------------- |
1660 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1680 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 50 48 50 20 56 65 72 73 69 6f | ---------------+.//.|.PHP.Versio |
16a0 | 6e 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.4............................. |
16c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 | ...........................|.//. |
16e0 | 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | +------------------------------- |
1700 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1720 | 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 37 | -------+.//.|.Copyright.(c).1997 |
1740 | 2d 32 30 30 33 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 20 20 20 20 | -2003.The.PHP.Group............. |
1760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d | ...................|.//.+------- |
1780 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
17a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b | -------------------------------+ |
17c0 | 0a 2f 2f 20 7c 20 54 68 69 73 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 73 75 62 6a 65 63 | .//.|.This.source.file.is.subjec |
17e0 | 74 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 20 6f 66 20 74 68 65 20 50 48 50 20 6c 69 63 | t.to.version.2.02.of.the.PHP.lic |
1800 | 65 6e 73 65 2c 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 74 68 61 74 20 69 73 20 62 75 6e 64 6c 65 | ense,......|.//.|.that.is.bundle |
1820 | 64 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 66 69 6c 65 20 | d.with.this.package.in.the.file. |
1840 | 4c 49 43 45 4e 53 45 2c 20 61 6e 64 20 69 73 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 61 76 | LICENSE,.and.is........|.//.|.av |
1860 | 61 69 6c 61 62 6c 65 20 61 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 2d 77 69 64 | ailable.at.through.the.world-wid |
1880 | 65 2d 77 65 62 20 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-web.at........................ |
18a0 | 20 20 20 7c 0a 2f 2f 20 7c 20 68 74 74 70 3a 2f 2f 77 77 77 2e 70 68 70 2e 6e 65 74 2f 6c 69 63 | ...|.//.|.http://www.php.net/lic |
18c0 | 65 6e 73 65 2f 32 5f 30 32 2e 74 78 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ense/2_02.txt................... |
18e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 49 66 20 79 6f 75 20 64 69 64 | ...............|.//.|.If.you.did |
1900 | 20 6e 6f 74 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 48 50 20 6c | .not.receive.a.copy.of.the.PHP.l |
1920 | 69 63 65 6e 73 65 20 61 6e 64 20 61 72 65 20 75 6e 61 62 6c 65 20 74 6f 20 20 20 7c 0a 2f 2f 20 | icense.and.are.unable.to...|.//. |
1940 | 7c 20 6f 62 74 61 69 6e 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 77 6f 72 6c 64 2d 77 69 | |.obtain.it.through.the.world-wi |
1960 | 64 65 2d 77 65 62 2c 20 70 6c 65 61 73 65 20 73 65 6e 64 20 61 20 6e 6f 74 65 20 74 6f 20 20 20 | de-web,.please.send.a.note.to... |
1980 | 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6c 69 63 65 6e 73 65 40 70 68 70 2e 6e 65 74 20 73 6f | .......|.//.|.license@php.net.so |
19a0 | 20 77 65 20 63 61 6e 20 6d 61 69 6c 20 79 6f 75 20 61 20 63 6f 70 79 20 69 6d 6d 65 64 69 61 74 | .we.can.mail.you.a.copy.immediat |
19c0 | 65 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d | ely................|.//.+------- |
19e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1a00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b | -------------------------------+ |
1a20 | 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 73 3a 20 43 68 75 63 6b 20 48 61 67 65 6e 62 75 63 68 20 3c | .//.|.Authors:.Chuck.Hagenbuch.< |
1a40 | 63 68 75 63 6b 40 68 6f 72 64 65 2e 6f 72 67 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | chuck@horde.org>................ |
1a60 | 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 20 20 20 20 20 20 20 4a 6f 6e 20 50 | ...........|.//.|..........Jon.P |
1a80 | 61 72 69 73 65 20 3c 6a 6f 6e 40 70 68 70 2e 6e 65 74 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 | arise.<jon@php.net>............. |
1aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 | .......................|.//.|... |
1ac0 | 20 20 20 20 20 20 20 44 61 6d 69 61 6e 20 41 6c 65 6a 61 6e 64 72 6f 20 46 65 72 6e 61 6e 64 65 | .......Damian.Alejandro.Fernande |
1ae0 | 7a 20 53 6f 73 61 20 3c 64 61 6d 6c 69 73 74 73 40 63 6e 62 61 2e 75 62 61 2e 61 72 3e 20 20 20 | z.Sosa.<damlists@cnba.uba.ar>... |
1b00 | 20 20 20 7c 0a 2f 2f 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...|.//.+----------------------- |
1b20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1b40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 | ---------------+..require_once.' |
1b60 | 50 45 41 52 2e 70 68 70 27 3b 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 4e 65 74 2f 53 6f 63 | PEAR.php';.require_once.'Net/Soc |
1b80 | 6b 65 74 2e 70 68 70 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 50 72 6f 76 69 64 65 73 20 61 6e 20 69 6d | ket.php';../**..*.Provides.an.im |
1ba0 | 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 53 4d 54 50 20 70 72 6f 74 6f 63 6f | plementation.of.the.SMTP.protoco |
1bc0 | 6c 20 75 73 69 6e 67 20 50 45 41 52 27 73 0a 20 2a 20 4e 65 74 5f 53 6f 63 6b 65 74 3a 3a 20 63 | l.using.PEAR's..*.Net_Socket::.c |
1be0 | 6c 61 73 73 2e 0a 20 2a 0a 20 2a 20 40 70 61 63 6b 61 67 65 20 4e 65 74 5f 53 4d 54 50 0a 20 2a | lass...*..*.@package.Net_SMTP..* |
1c00 | 20 40 61 75 74 68 6f 72 20 20 43 68 75 63 6b 20 48 61 67 65 6e 62 75 63 68 20 3c 63 68 75 63 6b | .@author..Chuck.Hagenbuch.<chuck |
1c20 | 40 68 6f 72 64 65 2e 6f 72 67 3e 0a 20 2a 20 40 61 75 74 68 6f 72 20 20 4a 6f 6e 20 50 61 72 69 | @horde.org>..*.@author..Jon.Pari |
1c40 | 73 65 20 3c 6a 6f 6e 40 70 68 70 2e 6e 65 74 3e 0a 20 2a 20 40 61 75 74 68 6f 72 20 20 44 61 6d | se.<jon@php.net>..*.@author..Dam |
1c60 | 69 61 6e 20 41 6c 65 6a 61 6e 64 72 6f 20 46 65 72 6e 61 6e 64 65 7a 20 53 6f 73 61 20 3c 64 61 | ian.Alejandro.Fernandez.Sosa.<da |
1c80 | 6d 6c 69 73 74 73 40 63 6e 62 61 2e 75 62 61 2e 61 72 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 4e 65 | mlists@cnba.uba.ar>..*/.class.Ne |
1ca0 | 74 5f 53 4d 54 50 0a 7b 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 73 65 72 76 | t_SMTP.{...../**......*.The.serv |
1cc0 | 65 72 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 | er.to.connect.to.......*.@var.st |
1ce0 | 72 69 6e 67 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 | ring......*.@access.public...... |
1d00 | 2a 2f 0a 20 20 20 20 76 61 72 20 24 68 6f 73 74 20 3d 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a | */.....var.$host.=.'localhost';. |
1d20 | 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 70 6f 72 74 20 74 6f 20 63 6f 6e 6e | ...../**......*.The.port.to.conn |
1d40 | 65 63 74 20 74 6f 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 69 6e 74 0a 20 20 20 20 20 2a 20 40 | ect.to.......*.@var.int......*.@ |
1d60 | 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 70 | access.public......*/.....var.$p |
1d80 | 6f 72 74 20 3d 20 32 35 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 76 61 | ort.=.25;....../**......*.The.va |
1da0 | 6c 75 65 20 74 6f 20 67 69 76 65 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 45 48 4c 4f 20 6f 72 | lue.to.give.when.sending.EHLO.or |
1dc0 | 20 48 45 4c 4f 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a | .HELO.......*.@var.string......* |
1de0 | 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 | .@access.public......*/.....var. |
1e00 | 24 6c 6f 63 61 6c 68 6f 73 74 20 3d 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 0a 20 20 20 20 2f | $localhost.=.'localhost';....../ |
1e20 | 2a 2a 0a 20 20 20 20 20 2a 20 4c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 61 75 74 68 | **......*.List.of.supported.auth |
1e40 | 65 6e 74 69 63 61 74 69 6f 6e 20 6d 65 74 68 6f 64 73 2c 20 69 6e 20 70 72 65 66 65 72 65 6e 74 | entication.methods,.in.preferent |
1e60 | 69 61 6c 20 6f 72 64 65 72 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 | ial.order.......*.@var.array.... |
1e80 | 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 | ..*.@access.public......*/.....v |
1ea0 | 61 72 20 24 61 75 74 68 5f 6d 65 74 68 6f 64 73 20 3d 20 61 72 72 61 79 28 27 44 49 47 45 53 54 | ar.$auth_methods.=.array('DIGEST |
1ec0 | 2d 4d 44 35 27 2c 20 27 43 52 41 4d 2d 4d 44 35 27 2c 20 27 4c 4f 47 49 4e 27 2c 20 27 50 4c 41 | -MD5',.'CRAM-MD5',.'LOGIN',.'PLA |
1ee0 | 49 4e 27 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 68 6f 75 6c 64 20 64 65 62 | IN');....../**......*.Should.deb |
1f00 | 75 67 67 69 6e 67 20 6f 75 74 70 75 74 20 62 65 20 65 6e 61 62 6c 65 64 3f 0a 20 20 20 20 20 2a | ugging.output.be.enabled?......* |
1f20 | 20 40 76 61 72 20 62 6f 6f 6c 65 61 6e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 | .@var.boolean......*.@access.pri |
1f40 | 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 64 65 62 75 67 20 3d 20 66 | vate......*/.....var.$_debug.=.f |
1f60 | 61 6c 73 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 73 6f 63 6b 65 74 | alse;....../**......*.The.socket |
1f80 | 20 72 65 73 6f 75 72 63 65 20 62 65 69 6e 67 20 75 73 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 | .resource.being.used.to.connect. |
1fa0 | 74 6f 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 | to.the.SMTP.server.......*.@var. |
1fc0 | 72 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a | resource......*.@access.private. |
1fe0 | 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 73 6f 63 6b 65 74 20 3d 20 6e 75 6c 6c 3b | .....*/.....var.$_socket.=.null; |
2000 | 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 | ....../**......*.The.most.recent |
2020 | 20 73 65 72 76 65 72 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 2e 0a 20 20 20 20 20 2a 20 40 76 | .server.response.code.......*.@v |
2040 | 61 72 20 69 6e 74 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 | ar.int......*.@access.private... |
2060 | 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 63 6f 64 65 20 3d 20 2d 31 3b 0a 0a 20 20 20 20 | ...*/.....var.$_code.=.-1;...... |
2080 | 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 73 65 72 76 65 | /**......*.The.most.recent.serve |
20a0 | 72 20 72 65 73 70 6f 6e 73 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20 20 2a 20 40 76 61 | r.response.arguments.......*.@va |
20c0 | 72 20 61 72 72 61 79 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 | r.array......*.@access.private.. |
20e0 | 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 | ....*/.....var.$_arguments.=.arr |
2100 | 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 74 6f 72 65 73 20 64 65 74 | ay();....../**......*.Stores.det |
2120 | 65 63 74 65 64 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 | ected.features.of.the.SMTP.serve |
2140 | 72 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 20 20 2a 20 40 61 63 63 | r.......*.@var.array......*.@acc |
2160 | 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 5f 65 73 | ess.private......*/.....var.$_es |
2180 | 6d 74 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 49 | mtp.=.array();....../**......*.I |
21a0 | 6e 73 74 61 6e 74 69 61 74 65 73 20 61 20 6e 65 77 20 4e 65 74 5f 53 4d 54 50 20 6f 62 6a 65 63 | nstantiates.a.new.Net_SMTP.objec |
21c0 | 74 2c 20 6f 76 65 72 72 69 64 69 6e 67 20 61 6e 79 20 64 65 66 61 75 6c 74 73 0a 20 20 20 20 20 | t,.overriding.any.defaults...... |
21e0 | 2a 20 77 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 61 72 65 20 70 61 73 73 65 | *.with.parameters.that.are.passe |
2200 | 64 20 69 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e | d.in.......*......*.@param.strin |
2220 | 67 20 54 68 65 20 73 65 72 76 65 72 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 0a 20 20 20 20 | g.The.server.to.connect.to...... |
2240 | 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 54 68 65 20 70 6f 72 74 20 74 6f 20 63 6f 6e 6e 65 63 | .*.@param.int.The.port.to.connec |
2260 | 74 20 74 6f 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 76 | t.to.......*.@param.string.The.v |
2280 | 61 6c 75 65 20 74 6f 20 67 69 76 65 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 45 48 4c 4f 20 6f | alue.to.give.when.sending.EHLO.o |
22a0 | 72 20 48 45 4c 4f 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 20 70 | r.HELO.......*......*.@access..p |
22c0 | 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e 30 0a 20 20 20 20 20 2a | ublic......*.@since...1.0......* |
22e0 | 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4e 65 74 5f 53 4d 54 50 28 24 68 6f 73 74 20 3d 20 | /.....function.Net_SMTP($host.=. |
2300 | 6e 75 6c 6c 2c 20 24 70 6f 72 74 20 3d 20 6e 75 6c 6c 2c 20 24 6c 6f 63 61 6c 68 6f 73 74 20 3d | null,.$port.=.null,.$localhost.= |
2320 | 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 | .null).....{.........if.(isset($ |
2340 | 68 6f 73 74 29 29 20 24 74 68 69 73 2d 3e 68 6f 73 74 20 3d 20 24 68 6f 73 74 3b 0a 20 20 20 20 | host)).$this->host.=.$host;..... |
2360 | 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 70 6f 72 74 29 29 20 24 74 68 69 73 2d 3e 70 6f 72 | ....if.(isset($port)).$this->por |
2380 | 74 20 3d 20 24 70 6f 72 74 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6c 6f | t.=.$port;.........if.(isset($lo |
23a0 | 63 61 6c 68 6f 73 74 29 29 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 68 6f 73 74 20 3d 20 24 6c 6f | calhost)).$this->localhost.=.$lo |
23c0 | 63 61 6c 68 6f 73 74 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 73 6f 63 6b 65 74 | calhost;..........$this->_socket |
23e0 | 20 3d 20 6e 65 77 20 4e 65 74 5f 53 6f 63 6b 65 74 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a | .=.new.Net_Socket();........../* |
2400 | 0a 20 20 20 20 20 20 20 20 20 2a 20 49 6e 63 6c 75 64 65 20 74 68 65 20 41 75 74 68 5f 53 41 53 | ..........*.Include.the.Auth_SAS |
2420 | 4c 20 70 61 63 6b 61 67 65 2e 20 20 49 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 6e 6f | L.package...If.the.package.is.no |
2440 | 74 20 61 76 61 69 6c 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 20 20 2a 20 77 65 20 64 69 73 61 62 | t.available,..........*.we.disab |
2460 | 6c 65 20 74 68 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 6d 65 74 68 6f 64 73 20 74 68 | le.the.authentication.methods.th |
2480 | 61 74 20 64 65 70 65 6e 64 20 75 70 6f 6e 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 | at.depend.upon.it...........*/.. |
24a0 | 20 20 20 20 20 20 20 69 66 20 28 28 40 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 41 75 74 68 2f | .......if.((@include_once.'Auth/ |
24c0 | 53 41 53 4c 2e 70 68 70 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 | SASL.php').===.false).{......... |
24e0 | 20 20 20 20 24 70 6f 73 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 27 44 49 47 45 53 54 2d | ....$pos.=.array_search('DIGEST- |
2500 | 4d 44 35 27 2c 20 24 74 68 69 73 2d 3e 61 75 74 68 5f 6d 65 74 68 6f 64 73 29 3b 0a 20 20 20 20 | MD5',.$this->auth_methods);..... |
2520 | 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 61 75 74 68 5f 6d 65 74 68 6f 64 | ........unset($this->auth_method |
2540 | 73 5b 24 70 6f 73 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 6f 73 20 3d 20 61 72 72 | s[$pos]);.............$pos.=.arr |
2560 | 61 79 5f 73 65 61 72 63 68 28 27 43 52 41 4d 2d 4d 44 35 27 2c 20 24 74 68 69 73 2d 3e 61 75 74 | ay_search('CRAM-MD5',.$this->aut |
2580 | 68 5f 6d 65 74 68 6f 64 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 74 | h_methods);.............unset($t |
25a0 | 68 69 73 2d 3e 61 75 74 68 5f 6d 65 74 68 6f 64 73 5b 24 70 6f 73 5d 29 3b 0a 20 20 20 20 20 20 | his->auth_methods[$pos]);....... |
25c0 | 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 74 20 74 68 | ..}.....}....../**......*.Set.th |
25e0 | 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 64 65 62 75 67 67 69 6e 67 20 66 6c 61 67 2e 0a 20 | e.value.of.the.debugging.flag... |
2600 | 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 62 6f 6f 6c 65 61 6e 20 24 64 | ....*......*.@param...boolean.$d |
2620 | 65 62 75 67 20 20 20 20 20 20 4e 65 77 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 64 65 62 75 | ebug......New.value.for.the.debu |
2640 | 67 67 69 6e 67 20 66 6c 61 67 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 | gging.flag.......*......*.@acces |
2660 | 73 20 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e 31 2e 30 0a | s..public......*.@since...1.1.0. |
2680 | 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 62 75 67 28 24 64 | .....*/.....function.setDebug($d |
26a0 | 65 62 75 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 64 65 62 75 | ebug).....{.........$this->_debu |
26c0 | 67 20 3d 20 24 64 65 62 75 67 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 | g.=.$debug;.....}....../**...... |
26e0 | 2a 20 53 65 6e 64 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 69 6e 67 20 6f 66 20 64 61 74 61 20 | *.Send.the.given.string.of.data. |
2700 | 74 6f 20 74 68 65 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 | to.the.server.......*......*.@pa |
2720 | 72 61 6d 20 20 20 73 74 72 69 6e 67 20 20 24 64 61 74 61 20 20 20 20 20 20 20 54 68 65 20 73 74 | ram...string..$data.......The.st |
2740 | 72 69 6e 67 20 6f 66 20 64 61 74 61 20 74 6f 20 73 65 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 | ring.of.data.to.send.......*.... |
2760 | 20 20 2a 20 40 72 65 74 75 72 6e 20 20 6d 69 78 65 64 20 20 20 54 72 75 65 20 6f 6e 20 73 75 63 | ..*.@return..mixed...True.on.suc |
2780 | 63 65 73 73 20 6f 72 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 6f 62 6a 65 63 74 20 6f 6e 20 66 | cess.or.a.PEAR_Error.object.on.f |
27a0 | 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 20 70 | ailure.......*......*.@access..p |
27c0 | 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e 31 2e 30 0a 20 20 20 | rivate......*.@since...1.1.0.... |
27e0 | 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 73 65 6e 64 28 24 64 61 74 61 29 0a 20 | ..*/.....function._send($data).. |
2800 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 64 65 62 75 67 29 20 | ...{.........if.($this->_debug). |
2820 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 44 45 42 55 47 3a 20 53 65 6e 64 3a | {.............echo."DEBUG:.Send: |
2840 | 20 24 64 61 74 61 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 | .$data\n";.........}..........if |
2860 | 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e | .(PEAR::isError($error.=.$this-> |
2880 | 5f 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 24 64 61 74 61 29 29 29 20 7b 0a 20 20 20 20 20 20 | _socket->write($data))).{....... |
28a0 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 46 61 69 | ......return.new.PEAR_Error('Fai |
28c0 | 6c 65 64 20 74 6f 20 77 72 69 74 65 20 74 6f 20 73 6f 63 6b 65 74 3a 20 27 20 2e 0a 20 20 20 20 | led.to.write.to.socket:.'....... |
28e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 | ..............................$e |
2900 | 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a | rror->getMessage());.........}.. |
2920 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 | ........return.true;.....}...... |
2940 | 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 | /**......*.Send.a.command.to.the |
2960 | 20 73 65 72 76 65 72 20 77 69 74 68 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 20 | .server.with.an.optional.string. |
2980 | 6f 66 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20 20 2a 20 41 20 63 61 72 72 69 61 67 65 20 | of.arguments.......*.A.carriage. |
29a0 | 72 65 74 75 72 6e 20 2f 20 6c 69 6e 65 66 65 65 64 20 28 43 52 4c 46 29 20 73 65 71 75 65 6e 63 | return./.linefeed.(CRLF).sequenc |
29c0 | 65 20 77 69 6c 6c 20 62 65 20 61 70 70 65 6e 64 65 64 20 74 6f 20 65 61 63 68 0a 20 20 20 20 20 | e.will.be.appended.to.each...... |
29e0 | 2a 20 63 6f 6d 6d 61 6e 64 20 73 74 72 69 6e 67 20 62 65 66 6f 72 65 20 69 74 20 69 73 20 73 65 | *.command.string.before.it.is.se |
2a00 | 6e 74 20 74 6f 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 | nt.to.the.SMTP.server.......*... |
2a20 | 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 73 74 72 69 6e 67 20 20 24 63 6f 6d 6d 61 6e 64 20 20 | ...*.@param...string..$command.. |
2a40 | 20 20 54 68 65 20 53 4d 54 50 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 73 65 6e 64 20 74 6f 20 74 68 | ..The.SMTP.command.to.send.to.th |
2a60 | 65 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 73 74 72 69 6e 67 | e.server.......*.@param...string |
2a80 | 20 20 24 61 72 67 73 20 20 20 20 20 20 20 41 20 73 74 72 69 6e 67 20 6f 66 20 6f 70 74 69 6f 6e | ..$args.......A.string.of.option |
2aa0 | 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 61 70 70 65 6e 64 0a 20 20 20 20 20 2a 20 20 20 | al.arguments.to.append......*... |
2ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 74 68 | ...........................to.th |
2ae0 | 65 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e | e.command.......*......*.@return |
2b00 | 20 20 6d 69 78 65 64 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 5f 73 65 6e | ..mixed...The.result.of.the._sen |
2b20 | 64 28 29 20 63 61 6c 6c 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 | d().call.......*......*.@access. |
2b40 | 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e 31 2e 30 0a 20 | .private......*.@since...1.1.0.. |
2b60 | 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 70 75 74 28 24 63 6f 6d 6d 61 6e | ....*/.....function._put($comman |
2b80 | 64 2c 20 24 61 72 67 73 20 3d 20 27 27 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 | d,.$args.=.'').....{.........if. |
2ba0 | 28 21 65 6d 70 74 79 28 24 61 72 67 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | (!empty($args)).{.............re |
2bc0 | 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 73 65 6e 64 28 24 63 6f 6d 6d 61 6e 64 20 2e 20 27 20 27 | turn.$this->_send($command...'.' |
2be0 | 20 2e 20 24 61 72 67 73 20 2e 20 22 5c 72 5c 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 | ...$args..."\r\n");.........}... |
2c00 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 73 65 6e 64 28 24 63 6f 6d 6d | .......return.$this->_send($comm |
2c20 | 61 6e 64 20 2e 20 22 5c 72 5c 6e 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 | and..."\r\n");.....}....../**... |
2c40 | 20 20 20 2a 20 52 65 61 64 20 61 20 72 65 70 6c 79 20 66 72 6f 6d 20 74 68 65 20 53 4d 54 50 20 | ...*.Read.a.reply.from.the.SMTP. |
2c60 | 73 65 72 76 65 72 2e 20 20 54 68 65 20 72 65 70 6c 79 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 | server...The.reply.consists.of.a |
2c80 | 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 2a 20 63 6f 64 65 20 61 6e 64 20 61 20 72 65 73 70 | .response......*.code.and.a.resp |
2ca0 | 6f 6e 73 65 20 6d 65 73 73 61 67 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 | onse.message.......*......*.@par |
2cc0 | 61 6d 20 20 20 6d 69 78 65 64 20 20 20 24 76 61 6c 69 64 20 20 20 20 20 20 54 68 65 20 73 65 74 | am...mixed...$valid......The.set |
2ce0 | 20 6f 66 20 76 61 6c 69 64 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 73 2e 20 20 54 68 65 73 65 | .of.valid.response.codes...These |
2d00 | 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......*......................... |
2d20 | 20 20 20 20 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 61 6e 20 61 72 72 61 | .....may.be.specified.as.an.arra |
2d40 | 79 20 6f 66 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 | y.of.integer......*............. |
2d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 73 20 6f 72 20 61 73 20 61 20 | .................values.or.as.a. |
2d80 | 73 69 6e 67 6c 65 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 | single.integer.value.......*.... |
2da0 | 20 20 2a 20 40 72 65 74 75 72 6e 20 20 6d 69 78 65 64 20 20 20 54 72 75 65 20 69 66 20 74 68 65 | ..*.@return..mixed...True.if.the |
2dc0 | 20 73 65 72 76 65 72 20 72 65 74 75 72 6e 65 64 20 61 20 76 61 6c 69 64 20 72 65 73 70 6f 6e 73 | .server.returned.a.valid.respons |
2de0 | 65 20 63 6f 64 65 20 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.code.or......*................ |
2e00 | 20 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 6f 62 6a 65 63 74 20 69 73 20 61 6e 20 65 72 72 6f | ..a.PEAR_Error.object.is.an.erro |
2e20 | 72 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 72 65 61 63 68 65 64 2e 0a 20 20 20 20 20 2a 0a 20 | r.condition.is.reached.......*.. |
2e40 | 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 | ....*.@access..private......*.@s |
2e60 | 69 6e 63 65 20 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 73 65 65 20 | ince...1.1.0......*......*.@see. |
2e80 | 20 20 20 20 67 65 74 52 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 | ....getResponse......*/.....func |
2ea0 | 74 69 6f 6e 20 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 24 76 61 6c 69 64 29 0a 20 20 20 20 | tion._parseResponse($valid)..... |
2ec0 | 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 20 2d 31 3b 0a 20 20 20 | {.........$this->_code.=.-1;.... |
2ee0 | 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 | .....$this->_arguments.=.array() |
2f00 | 3b 0a 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 24 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d | ;..........while.($line.=.$this- |
2f20 | 3e 5f 73 6f 63 6b 65 74 2d 3e 72 65 61 64 4c 69 6e 65 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | >_socket->readLine()).{......... |
2f40 | 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 64 65 62 75 67 29 20 7b 0a 20 20 20 20 20 20 20 | ....if.($this->_debug).{........ |
2f60 | 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 44 45 42 55 47 3a 20 52 65 63 76 3a 20 24 6c 69 6e | .........echo."DEBUG:.Recv:.$lin |
2f80 | 65 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 | e\n";.............}............. |
2fa0 | 20 2f 2a 20 49 66 20 77 65 20 72 65 63 65 69 76 65 20 61 6e 20 65 6d 70 74 79 20 6c 69 6e 65 2c | ./*.If.we.receive.an.empty.line, |
2fc0 | 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 63 6c 6f 73 65 64 2e | .the.connection.has.been.closed. |
2fe0 | 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6d 70 74 79 28 24 6c 69 6e 65 29 | .*/.............if.(empty($line) |
3000 | 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 69 73 63 6f | ).{.................$this->disco |
3020 | 6e 6e 65 63 74 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | nnect();.................return. |
3040 | 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 22 43 6f 6e 6e 65 63 74 69 6f 6e 20 77 61 73 20 75 | new.PEAR_Error("Connection.was.u |
3060 | 6e 65 78 70 65 63 74 65 64 6c 79 20 63 6c 6f 73 65 64 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | nexpectedly.closed");........... |
3080 | 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 52 65 61 64 20 74 68 65 20 63 6f 64 | ..}............../*.Read.the.cod |
30a0 | 65 20 61 6e 64 20 73 74 6f 72 65 20 74 68 65 20 72 65 73 74 20 69 6e 20 74 68 65 20 61 72 67 75 | e.and.store.the.rest.in.the.argu |
30c0 | 6d 65 6e 74 73 20 61 72 72 61 79 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 64 | ments.array..*/.............$cod |
30e0 | 65 20 3d 20 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 30 2c 20 33 29 3b 0a 20 20 20 20 20 20 20 | e.=.substr($line,.0,.3);........ |
3100 | 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 74 72 69 6d 28 | .....$this->_arguments[].=.trim( |
3120 | 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 34 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 | substr($line,.4));.............. |
3140 | 2f 2a 20 43 68 65 63 6b 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 20 74 68 65 20 72 65 73 70 6f | /*.Check.the.syntax.of.the.respo |
3160 | 6e 73 65 20 63 6f 64 65 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f | nse.code..*/.............if.(is_ |
3180 | 6e 75 6d 65 72 69 63 28 24 63 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | numeric($code)).{............... |
31a0 | 20 20 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 20 28 69 6e 74 29 24 63 6f 64 65 3b 0a 20 20 20 | ..$this->_code.=.(int)$code;.... |
31c0 | 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........}.else.{............... |
31e0 | 20 20 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 20 2d 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | ..$this->_code.=.-1;............ |
3200 | 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | .....break;.............}....... |
3220 | 20 20 20 20 20 20 20 2f 2a 20 49 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 61 20 6d 75 6c 74 69 | ......./*.If.this.is.not.a.multi |
3240 | 6c 69 6e 65 20 72 65 73 70 6f 6e 73 65 2c 20 77 65 27 72 65 20 64 6f 6e 65 2e 20 2a 2f 0a 20 20 | line.response,.we're.done..*/... |
3260 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 33 2c 20 31 | ..........if.(substr($line,.3,.1 |
3280 | 29 20 21 3d 20 27 2d 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 | ).!=.'-').{.................brea |
32a0 | 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | k;.............}.........}...... |
32c0 | 20 20 20 20 2f 2a 20 43 6f 6d 70 61 72 65 20 74 68 65 20 73 65 72 76 65 72 27 73 20 72 65 73 70 | ..../*.Compare.the.server's.resp |
32e0 | 6f 6e 73 65 20 63 6f 64 65 20 77 69 74 68 20 74 68 65 20 76 61 6c 69 64 20 63 6f 64 65 2e 20 2a | onse.code.with.the.valid.code..* |
3300 | 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 69 6e 74 28 24 76 61 6c 69 64 29 20 26 26 20 | /.........if.(is_int($valid).&&. |
3320 | 28 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 3d 3d 20 24 76 61 6c 69 64 29 29 20 7b 0a 20 20 20 | ($this->_code.===.$valid)).{.... |
3340 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a | .........return.true;.........}. |
3360 | 0a 20 20 20 20 20 20 20 20 2f 2a 20 49 66 20 77 65 20 77 65 72 65 20 67 69 76 65 6e 20 61 6e 20 | ........./*.If.we.were.given.an. |
3380 | 61 72 72 61 79 20 6f 66 20 76 61 6c 69 64 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 73 2c 20 63 | array.of.valid.response.codes,.c |
33a0 | 68 65 63 6b 20 65 61 63 68 20 6f 6e 65 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 | heck.each.one..*/.........if.(is |
33c0 | 5f 61 72 72 61 79 28 24 76 61 6c 69 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f | _array($valid)).{.............fo |
33e0 | 72 65 61 63 68 20 28 24 76 61 6c 69 64 20 61 73 20 24 76 61 6c 69 64 5f 63 6f 64 65 29 20 7b 0a | reach.($valid.as.$valid_code).{. |
3400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 63 6f 64 65 | ................if.($this->_code |
3420 | 20 3d 3d 3d 20 24 76 61 6c 69 64 5f 63 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .===.$valid_code).{............. |
3440 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | ........return.true;............ |
3460 | 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a | .....}.............}.........}.. |
3480 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 22 49 | ........return.new.PEAR_Error("I |
34a0 | 6e 76 61 6c 69 64 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 72 65 63 65 69 76 65 64 20 66 72 | nvalid.response.code.received.fr |
34c0 | 6f 6d 20 73 65 72 76 65 72 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 | om.server");.....}....../**..... |
34e0 | 20 2a 20 52 65 74 75 72 6e 20 61 20 32 2d 74 75 70 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 | .*.Return.a.2-tuple.containing.t |
3500 | 68 65 20 6c 61 73 74 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 53 4d 54 50 20 73 | he.last.response.from.the.SMTP.s |
3520 | 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 20 61 72 | erver.......*......*.@return..ar |
3540 | 72 61 79 20 20 20 41 20 74 77 6f 2d 65 6c 65 6d 65 6e 74 20 61 72 72 61 79 3a 20 74 68 65 20 66 | ray...A.two-element.array:.the.f |
3560 | 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 20 20 20 20 20 2a | irst.element.contains.the......* |
3580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 | ..................response.code. |
35a0 | 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 | as.an.integer.and.the.second.ele |
35c0 | 6d 65 6e 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e | ment......*..................con |
35e0 | 74 61 69 6e 73 20 74 68 65 20 72 65 73 70 6f 6e 73 65 27 73 20 61 72 67 75 6d 65 6e 74 73 20 61 | tains.the.response's.arguments.a |
3600 | 73 20 61 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 | s.a.string.......*......*.@acces |
3620 | 73 20 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e 31 2e 30 0a | s..public......*.@since...1.1.0. |
3640 | 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 73 70 6f 6e 73 65 | .....*/.....function.getResponse |
3660 | 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 | ().....{.........return.array($t |
3680 | 68 69 73 2d 3e 5f 63 6f 64 65 2c 20 6a 6f 69 6e 28 22 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 5f 61 | his->_code,.join("\n",.$this->_a |
36a0 | 72 67 75 6d 65 6e 74 73 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 | rguments));.....}....../**...... |
36c0 | 2a 20 41 74 74 65 6d 70 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 74 68 65 20 53 4d 54 50 | *.Attempt.to.connect.to.the.SMTP |
36e0 | 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 | .server.......*......*.@param... |
3700 | 69 6e 74 20 20 20 20 20 24 74 69 6d 65 6f 75 74 20 20 20 20 54 68 65 20 74 69 6d 65 6f 75 74 20 | int.....$timeout....The.timeout. |
3720 | 76 61 6c 75 65 20 28 69 6e 20 73 65 63 6f 6e 64 73 29 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 | value.(in.seconds).for.the...... |
3740 | 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 | *..............................s |
3760 | 6f 63 6b 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 | ocket.connection.......*......*. |
3780 | 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 | @return.mixed.Returns.a.PEAR_Err |
37a0 | 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a | or.with.an.error.message.on.any. |
37c0 | 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 | .....*...............kind.of.fai |
37e0 | 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a | lure,.or.true.on.success.......* |
3800 | 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 | .@access.public......*.@since..1 |
3820 | 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 | .0......*/.....function.connect( |
3840 | 24 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 | $timeout.=.null).....{.........$ |
3860 | 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 5f 73 6f 63 6b 65 74 2d 3e 63 6f 6e 6e 65 63 74 | result.=.$this->_socket->connect |
3880 | 28 24 74 68 69 73 2d 3e 68 6f 73 74 2c 20 24 74 68 69 73 2d 3e 70 6f 72 74 2c 0a 20 20 20 20 20 | ($this->host,.$this->port,...... |
38a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
38c0 | 20 20 20 20 20 66 61 6c 73 65 2c 20 24 74 69 6d 65 6f 75 74 29 3b 0a 20 20 20 20 20 20 20 20 69 | .....false,.$timeout);.........i |
38e0 | 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 | f.(PEAR::isError($result)).{.... |
3900 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 | .........return.new.PEAR_Error(' |
3920 | 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 73 6f 63 6b 65 74 3a 20 27 20 2e 0a 20 20 | Failed.to.connect.socket:.'..... |
3940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
3960 | 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 | $result->getMessage());......... |
3980 | 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 | }..........if.(PEAR::isError($er |
39a0 | 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 32 30 29 | ror.=.$this->_parseResponse(220) |
39c0 | 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a | )).{.............return.$error;. |
39e0 | 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 | ........}.........if.(PEAR::isEr |
3a00 | 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 6e 65 67 6f 74 69 61 74 65 28 29 | ror($error.=.$this->_negotiate() |
3a20 | 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a | )).{.............return.$error;. |
3a40 | 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a | ........}..........return.true;. |
3a60 | 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 74 74 65 6d 70 74 20 74 6f | ....}....../**......*.Attempt.to |
3a80 | 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 | .disconnect.from.the.SMTP.server |
3aa0 | 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 | .......*......*.@return.mixed.Re |
3ac0 | 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 | turns.a.PEAR_Error.with.an.error |
3ae0 | 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 | .message.on.any......*.......... |
3b00 | 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e | .....kind.of.failure,.or.true.on |
3b20 | 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a | .success.......*.@access.public. |
3b40 | 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 | .....*.@since..1.0......*/.....f |
3b60 | 75 6e 63 74 69 6f 6e 20 64 69 73 63 6f 6e 6e 65 63 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 | unction.disconnect().....{...... |
3b80 | 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 | ...if.(PEAR::isError($error.=.$t |
3ba0 | 68 69 73 2d 3e 5f 70 75 74 28 27 51 55 49 54 27 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | his->_put('QUIT'))).{........... |
3bc0 | 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 | ..return.$error;.........}...... |
3be0 | 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 | ...if.(PEAR::isError($error.=.$t |
3c00 | 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 32 31 29 29 29 20 7b 0a 20 20 20 | his->_parseResponse(221))).{.... |
3c20 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 | .........return.$error;......... |
3c40 | 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 | }.........if.(PEAR::isError($err |
3c60 | 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 73 6f 63 6b 65 74 2d 3e 64 69 73 63 6f 6e 6e 65 63 74 28 | or.=.$this->_socket->disconnect( |
3c80 | 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 | ))).{.............return.new.PEA |
3ca0 | 52 5f 45 72 72 6f 72 28 27 46 61 69 6c 65 64 20 74 6f 20 64 69 73 63 6f 6e 6e 65 63 74 20 73 6f | R_Error('Failed.to.disconnect.so |
3cc0 | 63 6b 65 74 3a 20 27 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cket:.'......................... |
3ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 | ............$error->getMessage() |
3d00 | 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 | );.........}..........return.tru |
3d20 | 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 74 74 65 6d 70 74 | e;.....}....../**......*.Attempt |
3d40 | 20 74 6f 20 73 65 6e 64 20 74 68 65 20 45 48 4c 4f 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 6f 62 | .to.send.the.EHLO.command.and.ob |
3d60 | 74 61 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 45 53 4d 54 50 0a 20 20 20 20 20 2a 20 65 78 74 65 | tain.a.list.of.ESMTP......*.exte |
3d80 | 6e 73 69 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 61 6e 64 20 66 61 69 6c 69 6e 67 20 74 68 | nsions.available,.and.failing.th |
3da0 | 61 74 20 6a 75 73 74 20 73 65 6e 64 20 48 45 4c 4f 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a | at.just.send.HELO.......*......* |
3dc0 | 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 | .@return.mixed.Returns.a.PEAR_Er |
3de0 | 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 | ror.with.an.error.message.on.any |
3e00 | 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 | ......*...............kind.of.fa |
3e20 | 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 | ilure,.or.true.on.success....... |
3e40 | 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 | *......*.@access.private......*. |
3e60 | 40 73 69 6e 63 65 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 | @since..1.1.0......*/.....functi |
3e80 | 6f 6e 20 5f 6e 65 67 6f 74 69 61 74 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 | on._negotiate().....{.........if |
3ea0 | 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e | .(PEAR::isError($error.=.$this-> |
3ec0 | 5f 70 75 74 28 27 45 48 4c 4f 27 2c 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 68 6f 73 74 29 29 29 | _put('EHLO',.$this->localhost))) |
3ee0 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 | .{.............return.$error;... |
3f00 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 | ......}..........if.(PEAR::isErr |
3f20 | 6f 72 28 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 | or($this->_parseResponse(250))). |
3f40 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 49 66 20 77 65 20 72 65 63 65 69 76 65 20 61 | {............./*.If.we.receive.a |
3f60 | 20 35 30 33 20 72 65 73 70 6f 6e 73 65 2c 20 77 65 27 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 | .503.response,.we're.already.aut |
3f80 | 68 65 6e 74 69 63 61 74 65 64 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 | henticated..*/.............if.($ |
3fa0 | 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 3d 3d 20 35 30 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | this->_code.===.503).{.......... |
3fc0 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .......return.true;............. |
3fe0 | 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 49 66 20 74 68 65 20 45 48 4c 4f 20 66 61 | }............../*.If.the.EHLO.fa |
4000 | 69 6c 65 64 2c 20 74 72 79 20 74 68 65 20 73 69 6d 70 6c 65 72 20 48 45 4c 4f 20 63 6f 6d 6d 61 | iled,.try.the.simpler.HELO.comma |
4020 | 6e 64 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 | nd..*/.............if.(PEAR::isE |
4040 | 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 48 45 4c 4f 27 | rror($error.=.$this->_put('HELO' |
4060 | 2c 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 68 6f 73 74 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | ,.$this->localhost))).{......... |
4080 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 20 | ........return.$error;.......... |
40a0 | 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 | ...}.............if.(PEAR::isErr |
40c0 | 6f 72 28 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 | or($this->_parseResponse(250))). |
40e0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 | {.................return.new.PEA |
4100 | 52 5f 45 72 72 6f 72 28 27 48 45 4c 4f 20 77 61 73 20 6e 6f 74 20 61 63 63 65 70 74 65 64 3a 20 | R_Error('HELO.was.not.accepted:. |
4120 | 27 2c 20 24 74 68 69 73 2d 3e 5f 63 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a | ',.$this->_code);.............}. |
4140 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 | .............return.true;....... |
4160 | 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 5f 61 72 | ..}..........foreach.($this->_ar |
4180 | 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 | guments.as.$argument).{......... |
41a0 | 20 20 20 20 24 76 65 72 62 20 3d 20 73 74 72 74 6f 6b 28 24 61 72 67 75 6d 65 6e 74 2c 20 27 20 | ....$verb.=.strtok($argument,.'. |
41c0 | 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 73 75 62 | ');.............$arguments.=.sub |
41e0 | 73 74 72 28 24 61 72 67 75 6d 65 6e 74 2c 20 73 74 72 6c 65 6e 28 24 76 65 72 62 29 20 2b 20 31 | str($argument,.strlen($verb).+.1 |
4200 | 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,............................... |
4220 | 20 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 29 20 2d 20 73 74 72 6c 65 6e 28 24 76 65 | ..strlen($argument).-.strlen($ve |
4240 | 72 62 29 20 2d 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 65 73 | rb).-.1);.............$this->_es |
4260 | 6d 74 70 5b 24 76 65 72 62 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 20 20 20 20 20 20 20 | mtp[$verb].=.$arguments;........ |
4280 | 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a | .}..........return.true;.....}.. |
42a0 | 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 6e 61 6d 65 20 | ..../**......*.Returns.the.name. |
42c0 | 6f 66 20 74 68 65 20 62 65 73 74 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 6d 65 74 68 6f | of.the.best.authentication.metho |
42e0 | 64 20 74 68 61 74 20 74 68 65 20 73 65 72 76 65 72 0a 20 20 20 20 20 2a 20 68 61 73 20 61 64 76 | d.that.the.server......*.has.adv |
4300 | 65 72 74 69 73 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d | ertised.......*......*.@return.m |
4320 | 69 78 65 64 20 20 20 20 52 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e | ixed....Returns.a.string.contain |
4340 | 69 6e 67 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 62 65 73 74 0a 20 20 20 20 20 2a 20 | ing.the.name.of.the.best......*. |
4360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 70 70 6f 72 74 65 64 20 61 75 74 68 65 | .................supported.authe |
4380 | 6e 74 69 63 61 74 69 6f 6e 20 6d 65 74 68 6f 64 20 6f 72 20 61 20 50 45 41 52 5f 45 72 72 6f 72 | ntication.method.or.a.PEAR_Error |
43a0 | 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .object......*.................. |
43c0 | 69 66 20 61 20 66 61 69 6c 75 72 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 65 6e 63 6f 75 6e | if.a.failure.condition.is.encoun |
43e0 | 74 65 72 65 64 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 | tered.......*.@access.private... |
4400 | 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 | ...*.@since..1.1.0......*/.....f |
4420 | 75 6e 63 74 69 6f 6e 20 5f 67 65 74 42 65 73 74 41 75 74 68 4d 65 74 68 6f 64 28 29 0a 20 20 20 | unction._getBestAuthMethod().... |
4440 | 20 7b 0a 20 20 20 20 20 20 20 20 24 61 76 61 69 6c 61 62 6c 65 5f 6d 65 74 68 6f 64 73 20 3d 20 | .{.........$available_methods.=. |
4460 | 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 74 68 69 73 2d 3e 5f 65 73 6d 74 70 5b 27 41 55 54 48 | explode('.',.$this->_esmtp['AUTH |
4480 | 27 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 75 | ']);..........foreach.($this->au |
44a0 | 74 68 5f 6d 65 74 68 6f 64 73 20 61 73 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 20 20 20 | th_methods.as.$method).{........ |
44c0 | 20 20 20 20 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6d 65 74 68 6f 64 2c 20 24 61 76 61 69 | .....if.(in_array($method,.$avai |
44e0 | 6c 61 62 6c 65 5f 6d 65 74 68 6f 64 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lable_methods)).{............... |
4500 | 20 20 72 65 74 75 72 6e 20 24 6d 65 74 68 6f 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a | ..return.$method;.............}. |
4520 | 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 | ........}..........return.new.PE |
4540 | 41 52 5f 45 72 72 6f 72 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 64 20 61 75 74 68 65 6e 74 69 63 | AR_Error('No.supported.authentic |
4560 | 61 74 69 6f 6e 20 6d 65 74 68 6f 64 73 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a | ation.methods');.....}....../**. |
4580 | 20 20 20 20 20 2a 20 41 74 74 65 6d 70 74 20 74 6f 20 64 6f 20 53 4d 54 50 20 61 75 74 68 65 6e | .....*.Attempt.to.do.SMTP.authen |
45a0 | 74 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 | tication.......*......*.@param.s |
45c0 | 74 72 69 6e 67 20 54 68 65 20 75 73 65 72 69 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 | tring.The.userid.to.authenticate |
45e0 | 20 61 73 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 70 61 | .as.......*.@param.string.The.pa |
4600 | 73 73 77 6f 72 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 68 2e 0a 20 20 20 | ssword.to.authenticate.with..... |
4620 | 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 | ..*.@param.string.The.requested. |
4640 | 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 6d 65 74 68 6f 64 2e 20 20 49 66 20 6e 6f 6e 65 20 | authentication.method...If.none. |
4660 | 69 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 66 69 65 | is......*...............specifie |
4680 | 64 2c 20 74 68 65 20 62 65 73 74 20 73 75 70 70 6f 72 74 65 64 20 6d 65 74 68 6f 64 20 77 69 6c | d,.the.best.supported.method.wil |
46a0 | 6c 20 62 65 20 75 73 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e | l.be.used.......*......*.@return |
46c0 | 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 | .mixed.Returns.a.PEAR_Error.with |
46e0 | 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 | .an.error.message.on.any......*. |
4700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f | ..............kind.of.failure,.o |
4720 | 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 | r.true.on.success.......*.@acces |
4740 | 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 | s.public......*.@since..1.0..... |
4760 | 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 28 24 75 69 64 2c 20 24 70 77 64 | .*/.....function.auth($uid,.$pwd |
4780 | 20 2c 20 24 6d 65 74 68 6f 64 20 3d 20 27 27 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 | .,.$method.=.'').....{.........i |
47a0 | 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 5f 65 73 6d 74 70 5b 27 41 55 54 48 27 5d 29 29 | f.(empty($this->_esmtp['AUTH'])) |
47c0 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 | .{.............return.new.PEAR_E |
47e0 | 72 72 6f 72 28 27 53 4d 54 50 20 73 65 72 76 65 72 20 64 6f 65 73 20 6e 6f 20 73 75 70 70 6f 72 | rror('SMTP.server.does.no.suppor |
4800 | 74 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 | t.authentication');.........}... |
4820 | 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 49 66 20 6e 6f 20 6d 65 74 68 6f | ......./*..........*.If.no.metho |
4840 | 64 20 68 61 73 20 62 65 65 6e 20 73 70 65 63 69 66 69 65 64 2c 20 67 65 74 20 74 68 65 20 6e 61 | d.has.been.specified,.get.the.na |
4860 | 6d 65 20 6f 66 20 74 68 65 20 62 65 73 74 20 73 75 70 70 6f 72 74 65 64 0a 20 20 20 20 20 20 20 | me.of.the.best.supported........ |
4880 | 20 20 2a 20 6d 65 74 68 6f 64 20 61 64 76 65 72 74 69 73 65 64 20 62 79 20 74 68 65 20 53 4d 54 | ..*.method.advertised.by.the.SMT |
48a0 | 50 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 | P.server...........*/.........if |
48c0 | 20 28 65 6d 70 74 79 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(empty($method)).{............. |
48e0 | 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 6d 65 74 68 6f 64 20 3d 20 24 74 68 69 | if.(PEAR::isError($method.=.$thi |
4900 | 73 2d 3e 5f 67 65 74 42 65 73 74 41 75 74 68 4d 65 74 68 6f 64 28 29 29 29 20 7b 0a 20 20 20 20 | s->_getBestAuthMethod())).{..... |
4920 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 52 65 74 75 72 6e 20 74 68 65 20 50 45 41 52 5f 45 | ............/*.Return.the.PEAR_E |
4940 | 72 72 6f 72 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 5f 67 65 74 42 65 73 74 41 75 74 68 4d 65 74 | rror.object.from._getBestAuthMet |
4960 | 68 6f 64 28 29 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e | hod()..*/.................return |
4980 | 20 24 6d 65 74 68 6f 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 | .$method;.............}......... |
49a0 | 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 65 74 68 6f 64 20 3d 20 73 | }.else.{.............$method.=.s |
49c0 | 74 72 74 6f 75 70 70 65 72 28 24 6d 65 74 68 6f 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | trtoupper($method);............. |
49e0 | 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 65 74 68 6f 64 2c 20 24 74 68 69 73 2d 3e 61 75 | if.(!in_array($method,.$this->au |
4a00 | 74 68 5f 6d 65 74 68 6f 64 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | th_methods)).{.................r |
4a20 | 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 22 24 6d 65 74 68 6f 64 20 69 73 | eturn.new.PEAR_Error("$method.is |
4a40 | 20 6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 | .not.a.supported.authentication. |
4a60 | 6d 65 74 68 6f 64 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 | method");.............}......... |
4a80 | 7d 0a 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 | }..........switch.($method).{... |
4aa0 | 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 44 49 47 45 53 54 2d 4d 44 35 27 3a 0a 20 20 20 | ..........case.'DIGEST-MD5':.... |
4ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 5f 61 | .............$result.=.$this->_a |
4ae0 | 75 74 68 44 69 67 65 73 74 5f 4d 44 35 28 24 75 69 64 2c 20 24 70 77 64 29 3b 0a 20 20 20 20 20 | uthDigest_MD5($uid,.$pwd);...... |
4b00 | 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 | ...........break;.............ca |
4b20 | 73 65 20 27 43 52 41 4d 2d 4d 44 35 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 | se.'CRAM-MD5':.................$ |
4b40 | 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 5f 61 75 74 68 43 52 41 4d 5f 4d 44 35 28 24 75 | result.=.$this->_authCRAM_MD5($u |
4b60 | 69 64 2c 20 24 70 77 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b | id,.$pwd);.................break |
4b80 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 4c 4f 47 49 4e 27 3a 0a 20 20 20 20 | ;.............case.'LOGIN':..... |
4ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 5f 61 75 | ............$result.=.$this->_au |
4bc0 | 74 68 4c 6f 67 69 6e 28 24 75 69 64 2c 20 24 70 77 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | thLogin($uid,.$pwd);............ |
4be0 | 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 50 4c | .....break;.............case.'PL |
4c00 | 41 49 4e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 | AIN':.................$result.=. |
4c20 | 24 74 68 69 73 2d 3e 5f 61 75 74 68 50 6c 61 69 6e 28 24 75 69 64 2c 20 24 70 77 64 29 3b 0a 20 | $this->_authPlain($uid,.$pwd);.. |
4c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 | ...............break;........... |
4c60 | 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 73 75 | ..default:.................$resu |
4c80 | 6c 74 20 3d 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 22 24 6d 65 74 68 6f 64 20 69 73 20 | lt.=.new.PEAR_Error("$method.is. |
4ca0 | 6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 6d | not.a.supported.authentication.m |
4cc0 | 65 74 68 6f 64 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a | ethod");.................break;. |
4ce0 | 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2a 20 49 66 20 61 6e 20 65 72 72 6f | ........}........../*.If.an.erro |
4d00 | 72 20 77 61 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 2c 20 72 65 74 75 72 6e 20 74 68 65 20 50 45 | r.was.encountered,.return.the.PE |
4d20 | 41 52 5f 45 72 72 6f 72 20 6f 62 6a 65 63 74 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 | AR_Error.object..*/.........if.( |
4d40 | 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 | PEAR::isError($result)).{....... |
4d60 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a | ......return.$result;.........}. |
4d80 | 0a 20 20 20 20 20 20 20 20 2f 2a 20 52 46 43 2d 32 35 35 34 20 72 65 71 75 69 72 65 73 20 75 73 | ........./*.RFC-2554.requires.us |
4da0 | 20 74 6f 20 72 65 2d 6e 65 67 6f 74 69 61 74 65 20 45 53 4d 54 50 20 61 66 74 65 72 20 61 6e 20 | .to.re-negotiate.ESMTP.after.an. |
4dc0 | 41 55 54 48 2e 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 | AUTH..*/.........if.(PEAR::isErr |
4de0 | 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 6e 65 67 6f 74 69 61 74 65 28 29 29 | or($error.=.$this->_negotiate()) |
4e00 | 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 | ).{.............return.$error;.. |
4e20 | 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 | .......}..........return.true;.. |
4e40 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 74 68 65 20 75 | ...}....../*.Authenticates.the.u |
4e60 | 73 65 72 20 75 73 69 6e 67 20 74 68 65 20 44 49 47 45 53 54 2d 4d 44 35 20 6d 65 74 68 6f 64 2e | ser.using.the.DIGEST-MD5.method. |
4e80 | 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 | ......*......*.@param.string.The |
4ea0 | 20 75 73 65 72 69 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 61 73 2e 0a 20 20 20 20 | .userid.to.authenticate.as...... |
4ec0 | 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 70 61 73 73 77 6f 72 64 20 74 6f | .*.@param.string.The.password.to |
4ee0 | 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 68 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | .authenticate.with.......*...... |
4f00 | 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 | *.@return.mixed.Returns.a.PEAR_E |
4f20 | 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e | rror.with.an.error.message.on.an |
4f40 | 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 | y......*...............kind.of.f |
4f60 | 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 | ailure,.or.true.on.success...... |
4f80 | 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 | .*.@access.private......*.@since |
4fa0 | 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 61 75 | ..1.1.0......*/.....function._au |
4fc0 | 74 68 44 69 67 65 73 74 5f 4d 44 35 28 24 75 69 64 2c 20 24 70 77 64 29 0a 20 20 20 20 7b 0a 20 | thDigest_MD5($uid,.$pwd).....{.. |
4fe0 | 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 | .......if.(PEAR::isError($error. |
5000 | 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 41 55 54 48 27 2c 20 27 44 49 47 45 53 54 2d 4d 44 | =.$this->_put('AUTH',.'DIGEST-MD |
5020 | 35 27 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f | 5'))).{.............return.$erro |
5040 | 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2a 20 33 33 34 3a 20 43 6f 6e | r;.........}........./*.334:.Con |
5060 | 74 69 6e 75 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 2a 2f 0a | tinue.authentication.request.*/. |
5080 | 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 | ........if.(PEAR::isError($error |
50a0 | 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 33 33 34 29 29 29 20 | .=.$this->_parseResponse(334))). |
50c0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 35 30 33 3a 20 45 72 72 6f 72 3a 20 61 6c 72 | {............./*.503:.Error:.alr |
50e0 | 65 61 64 79 20 61 75 74 68 65 6e 74 69 63 61 74 65 64 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 | eady.authenticated.*/........... |
5100 | 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 3d 3d 20 35 30 33 29 20 7b 0a 20 20 | ..if.($this->_code.===.503).{... |
5120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 | ..............return.true;...... |
5140 | 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 | .......}.............return.$err |
5160 | 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 68 61 6c 6c 65 6e 67 | or;.........}..........$challeng |
5180 | 65 20 3d 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 5f 61 72 67 75 6d 65 | e.=.base64_decode($this->_argume |
51a0 | 6e 74 73 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 24 64 69 67 65 73 74 20 3d 20 26 41 75 74 68 | nts[0]);.........$digest.=.&Auth |
51c0 | 5f 53 41 53 4c 3a 3a 66 61 63 74 6f 72 79 28 27 64 69 67 65 73 74 6d 64 35 27 29 3b 0a 20 20 20 | _SASL::factory('digestmd5');.... |
51e0 | 20 20 20 20 20 24 61 75 74 68 5f 73 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 | .....$auth_str.=.base64_encode($ |
5200 | 64 69 67 65 73 74 2d 3e 67 65 74 52 65 73 70 6f 6e 73 65 28 24 75 69 64 2c 20 24 70 77 64 2c 20 | digest->getResponse($uid,.$pwd,. |
5220 | 24 63 68 61 6c 6c 65 6e 67 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | $challenge,..................... |
5240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
5260 | 20 20 20 24 74 68 69 73 2d 3e 68 6f 73 74 2c 20 22 73 6d 74 70 22 29 29 3b 0a 0a 20 20 20 20 20 | ...$this->host,."smtp"));....... |
5280 | 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 | ...if.(PEAR::isError($error.=.$t |
52a0 | 68 69 73 2d 3e 5f 70 75 74 28 24 61 75 74 68 5f 73 74 72 29 29 29 20 7b 0a 20 20 20 20 20 20 20 | his->_put($auth_str))).{........ |
52c0 | 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 | .....return.$error;.........}... |
52e0 | 20 20 20 20 20 20 2f 2a 20 33 33 34 3a 20 43 6f 6e 74 69 6e 75 65 20 61 75 74 68 65 6e 74 69 63 | ....../*.334:.Continue.authentic |
5300 | 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 | ation.request.*/.........if.(PEA |
5320 | 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 | R::isError($error.=.$this->_pars |
5340 | 65 52 65 73 70 6f 6e 73 65 28 33 33 34 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 | eResponse(334))).{.............r |
5360 | 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 | eturn.$error;.........}......... |
5380 | 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 57 65 20 64 6f 6e 27 74 20 75 73 65 20 74 68 65 20 | ./*..........*.We.don't.use.the. |
53a0 | 70 72 6f 74 6f 63 6f 6c 27 73 20 74 68 69 72 64 20 73 74 65 70 20 62 65 63 61 75 73 65 20 53 4d | protocol's.third.step.because.SM |
53c0 | 54 50 20 64 6f 65 73 6e 27 74 20 61 6c 6c 6f 77 0a 20 20 20 20 20 20 20 20 20 2a 20 73 75 62 73 | TP.doesn't.allow..........*.subs |
53e0 | 65 71 75 65 6e 74 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2c 20 73 6f 20 77 65 20 6a 75 73 | equent.authentication,.so.we.jus |
5400 | 74 20 73 69 6c 65 6e 74 6c 79 20 69 67 6e 6f 72 65 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 2a | t.silently.ignore.it...........* |
5420 | 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 | /.........if.(PEAR::isError($err |
5440 | 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 20 27 29 29 29 20 7b 0a 20 20 20 20 20 20 | or.=.$this->_put('.'))).{....... |
5460 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 | ......return.$error;.........}.. |
5480 | 20 20 20 20 20 20 20 2f 2a 20 32 33 35 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 73 75 | ......./*.235:.Authentication.su |
54a0 | 63 63 65 73 73 66 75 6c 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 | ccessful.*/.........if.(PEAR::is |
54c0 | 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 | Error($error.=.$this->_parseResp |
54e0 | 6f 6e 73 65 28 32 33 35 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e | onse(235))).{.............return |
5500 | 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a | .$error;.........}.....}....../* |
5520 | 20 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 74 68 65 20 75 73 65 72 20 75 73 69 6e 67 20 74 68 | .Authenticates.the.user.using.th |
5540 | 65 20 43 52 41 4d 2d 4d 44 35 20 6d 65 74 68 6f 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a | e.CRAM-MD5.method.......*......* |
5560 | 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 75 73 65 72 69 64 20 74 6f 20 61 75 74 | .@param.string.The.userid.to.aut |
5580 | 68 65 6e 74 69 63 61 74 65 20 61 73 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 | henticate.as.......*.@param.stri |
55a0 | 6e 67 20 54 68 65 20 70 61 73 73 77 6f 72 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 | ng.The.password.to.authenticate. |
55c0 | 77 69 74 68 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 | with.......*......*.@return.mixe |
55e0 | 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 | d.Returns.a.PEAR_Error.with.an.e |
5600 | 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | rror.message.on.any......*...... |
5620 | 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 | .........kind.of.failure,.or.tru |
5640 | 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 | e.on.success.......*.@access.pri |
5660 | 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 2a | vate......*.@since..1.1.0......* |
5680 | 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 61 75 74 68 43 52 41 4d 5f 4d 44 35 28 24 75 69 | /.....function._authCRAM_MD5($ui |
56a0 | 64 2c 20 24 70 77 64 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a | d,.$pwd).....{.........if.(PEAR: |
56c0 | 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 41 | :isError($error.=.$this->_put('A |
56e0 | 55 54 48 27 2c 20 27 43 52 41 4d 2d 4d 44 35 27 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | UTH',.'CRAM-MD5'))).{........... |
5700 | 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 | ..return.$error;.........}...... |
5720 | 20 20 20 2f 2a 20 33 33 34 3a 20 43 6f 6e 74 69 6e 75 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 | .../*.334:.Continue.authenticati |
5740 | 6f 6e 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a | on.request.*/.........if.(PEAR:: |
5760 | 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 | isError($error.=.$this->_parseRe |
5780 | 73 70 6f 6e 73 65 28 33 33 34 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 35 | sponse(334))).{............./*.5 |
57a0 | 30 33 3a 20 45 72 72 6f 72 3a 20 61 6c 72 65 61 64 79 20 61 75 74 68 65 6e 74 69 63 61 74 65 64 | 03:.Error:.already.authenticated |
57c0 | 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 63 6f 64 65 | .*/.............if.($this->_code |
57e0 | 20 3d 3d 3d 20 35 30 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | .===.503).{.................retu |
5800 | 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 | rn.true;.............}.......... |
5820 | 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 | ...return.$error;.........}..... |
5840 | 20 20 20 20 20 24 63 68 61 6c 6c 65 6e 67 65 20 3d 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 | .....$challenge.=.base64_decode( |
5860 | 24 74 68 69 73 2d 3e 5f 61 72 67 75 6d 65 6e 74 73 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 24 | $this->_arguments[0]);.........$ |
5880 | 63 72 61 6d 20 3d 20 26 41 75 74 68 5f 53 41 53 4c 3a 3a 66 61 63 74 6f 72 79 28 27 63 72 61 6d | cram.=.&Auth_SASL::factory('cram |
58a0 | 6d 64 35 27 29 3b 0a 20 20 20 20 20 20 20 20 24 61 75 74 68 5f 73 74 72 20 3d 20 62 61 73 65 36 | md5');.........$auth_str.=.base6 |
58c0 | 34 5f 65 6e 63 6f 64 65 28 24 63 72 61 6d 2d 3e 67 65 74 52 65 73 70 6f 6e 73 65 28 24 75 69 64 | 4_encode($cram->getResponse($uid |
58e0 | 2c 20 24 70 77 64 2c 20 24 63 68 61 6c 6c 65 6e 67 65 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 | ,.$pwd,.$challenge));..........i |
5900 | 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d | f.(PEAR::isError($error.=.$this- |
5920 | 3e 5f 70 75 74 28 24 61 75 74 68 5f 73 74 72 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | >_put($auth_str))).{............ |
5940 | 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | .return.$error;.........}....... |
5960 | 20 20 20 2f 2a 20 32 33 35 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 73 75 63 63 65 73 | .../*.235:.Authentication.succes |
5980 | 73 66 75 6c 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f | sful.*/.........if.(PEAR::isErro |
59a0 | 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 | r($error.=.$this->_parseResponse |
59c0 | 28 32 33 35 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 | (235))).{.............return.$er |
59e0 | 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 | ror;.........}.....}....../**... |
5a00 | 20 20 20 2a 20 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 74 68 65 20 75 73 65 72 20 75 73 69 6e | ...*.Authenticates.the.user.usin |
5a20 | 67 20 74 68 65 20 4c 4f 47 49 4e 20 6d 65 74 68 6f 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | g.the.LOGIN.method.......*...... |
5a40 | 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 75 73 65 72 69 64 20 74 6f 20 61 75 | *.@param.string.The.userid.to.au |
5a60 | 74 68 65 6e 74 69 63 61 74 65 20 61 73 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 | thenticate.as.......*.@param.str |
5a80 | 69 6e 67 20 54 68 65 20 70 61 73 73 77 6f 72 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 | ing.The.password.to.authenticate |
5aa0 | 20 77 69 74 68 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 | .with.......*......*.@return.mix |
5ac0 | 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 | ed.Returns.a.PEAR_Error.with.an. |
5ae0 | 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 | error.message.on.any......*..... |
5b00 | 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 | ..........kind.of.failure,.or.tr |
5b20 | 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 | ue.on.success.......*.@access.pr |
5b40 | 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 31 2e 30 0a 20 20 20 20 20 | ivate......*.@since..1.1.0...... |
5b60 | 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 61 75 74 68 4c 6f 67 69 6e 28 24 75 69 64 2c | */.....function._authLogin($uid, |
5b80 | 20 24 70 77 64 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 | .$pwd).....{.........if.(PEAR::i |
5ba0 | 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 41 55 54 | sError($error.=.$this->_put('AUT |
5bc0 | 48 27 2c 20 27 4c 4f 47 49 4e 27 29 29 29 20 7b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | H',.'LOGIN'))).{..............re |
5be0 | 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f | turn.$error;.........}........./ |
5c00 | 2a 20 33 33 34 3a 20 43 6f 6e 74 69 6e 75 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 | *.334:.Continue.authentication.r |
5c20 | 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 | equest.*/.........if.(PEAR::isEr |
5c40 | 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e | ror($error.=.$this->_parseRespon |
5c60 | 73 65 28 33 33 34 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 35 30 33 3a 20 | se(334))).{............./*.503:. |
5c80 | 45 72 72 6f 72 3a 20 61 6c 72 65 61 64 79 20 61 75 74 68 65 6e 74 69 63 61 74 65 64 20 2a 2f 0a | Error:.already.authenticated.*/. |
5ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 63 6f 64 65 20 3d 3d 3d | ............if.($this->_code.=== |
5cc0 | 20 35 30 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 | .503).{.................return.t |
5ce0 | 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 | rue;.............}.............r |
5d00 | 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 | eturn.$error;.........}......... |
5d20 | 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 | .if.(PEAR::isError($error.=.$thi |
5d40 | 73 2d 3e 5f 70 75 74 28 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 75 69 64 29 29 29 29 20 7b | s->_put(base64_encode($uid)))).{ |
5d60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 | .............return.$error;..... |
5d80 | 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2a 20 33 33 34 3a 20 43 6f 6e 74 69 6e 75 65 20 61 | ....}........./*.334:.Continue.a |
5da0 | 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 20 20 20 | uthentication.request.*/........ |
5dc0 | 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 | .if.(PEAR::isError($error.=.$thi |
5de0 | 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 33 33 34 29 29 29 20 7b 0a 20 20 20 20 20 | s->_parseResponse(334))).{...... |
5e00 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a | .......return.$error;.........}. |
5e20 | 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f | .........if.(PEAR::isError($erro |
5e40 | 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 70 | r.=.$this->_put(base64_encode($p |
5e60 | 77 64 29 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 | wd)))).{.............return.$err |
5e80 | 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2a 20 32 33 35 3a 20 41 | or;.........}........../*.235:.A |
5ea0 | 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 20 2a 2f 0a 20 20 20 20 | uthentication.successful.*/..... |
5ec0 | 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 | ....if.(PEAR::isError($error.=.$ |
5ee0 | 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 33 35 29 29 29 20 7b 0a 20 20 | this->_parseResponse(235))).{... |
5f00 | 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 | ..........return.$error;........ |
5f20 | 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a | .}..........return.true;.....}.. |
5f40 | 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 74 68 65 | ..../**......*.Authenticates.the |
5f60 | 20 75 73 65 72 20 75 73 69 6e 67 20 74 68 65 20 50 4c 41 49 4e 20 6d 65 74 68 6f 64 2e 0a 20 20 | .user.using.the.PLAIN.method.... |
5f80 | 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 75 73 | ...*......*.@param.string.The.us |
5fa0 | 65 72 69 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 61 73 2e 0a 20 20 20 20 20 2a 20 | erid.to.authenticate.as.......*. |
5fc0 | 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 70 61 73 73 77 6f 72 64 20 74 6f 20 61 75 | @param.string.The.password.to.au |
5fe0 | 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 68 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 | thenticate.with.......*......*.@ |
6000 | 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f | return.mixed.Returns.a.PEAR_Erro |
6020 | 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 | r.with.an.error.message.on.any.. |
6040 | 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c | ....*...............kind.of.fail |
6060 | 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 | ure,.or.true.on.success.......*. |
6080 | 40 61 63 63 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 | @access.private......*.@since..1 |
60a0 | 2e 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 61 75 74 68 50 | .1.0......*/.....function._authP |
60c0 | 6c 61 69 6e 28 24 75 69 64 2c 20 24 70 77 64 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 | lain($uid,.$pwd).....{.........i |
60e0 | 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d | f.(PEAR::isError($error.=.$this- |
6100 | 3e 5f 70 75 74 28 27 41 55 54 48 27 2c 20 27 50 4c 41 49 4e 27 29 29 29 20 7b 0a 20 20 20 20 20 | >_put('AUTH',.'PLAIN'))).{...... |
6120 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a | .......return.$error;.........}. |
6140 | 20 20 20 20 20 20 20 20 2f 2a 20 33 33 34 3a 20 43 6f 6e 74 69 6e 75 65 20 61 75 74 68 65 6e 74 | ......../*.334:.Continue.authent |
6160 | 69 63 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 | ication.request.*/.........if.(P |
6180 | 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 | EAR::isError($error.=.$this->_pa |
61a0 | 72 73 65 52 65 73 70 6f 6e 73 65 28 33 33 34 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | rseResponse(334))).{............ |
61c0 | 20 2f 2a 20 35 30 33 3a 20 45 72 72 6f 72 3a 20 61 6c 72 65 61 64 79 20 61 75 74 68 65 6e 74 69 | ./*.503:.Error:.already.authenti |
61e0 | 63 61 74 65 64 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e | cated.*/.............if.($this-> |
6200 | 5f 63 6f 64 65 20 3d 3d 3d 20 35 30 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _code.===.503).{................ |
6220 | 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 | .return.true;.............}..... |
6240 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d | ........return.$error;.........} |
6260 | 0a 0a 20 20 20 20 20 20 20 20 24 61 75 74 68 5f 73 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 | ..........$auth_str.=.base64_enc |
6280 | 6f 64 65 28 63 68 72 28 30 29 20 2e 20 24 75 69 64 20 2e 20 63 68 72 28 30 29 20 2e 20 24 70 77 | ode(chr(0)...$uid...chr(0)...$pw |
62a0 | 64 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 | d);..........if.(PEAR::isError($ |
62c0 | 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 24 61 75 74 68 5f 73 74 72 29 29 29 | error.=.$this->_put($auth_str))) |
62e0 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 | .{.............return.$error;... |
6300 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2a 20 32 33 35 3a 20 41 75 74 68 65 6e 74 | ......}........../*.235:.Authent |
6320 | 69 63 61 74 69 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 | ication.successful.*/.........if |
6340 | 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e | .(PEAR::isError($error.=.$this-> |
6360 | 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 33 35 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | _parseResponse(235))).{......... |
6380 | 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 | ....return.$error;.........}.... |
63a0 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a | ......return.true;.....}....../* |
63c0 | 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 48 45 4c 4f 20 63 6f 6d 6d 61 6e 64 2e 0a | *......*.Send.the.HELO.command.. |
63e0 | 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 | .....*......*.@param.string.The. |
6400 | 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 74 6f 20 73 61 79 20 77 65 20 61 72 65 2e 0a 20 20 20 20 20 | domain.name.to.say.we.are....... |
6420 | 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 | *......*.@return.mixed.Returns.a |
6440 | 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 | .PEAR_Error.with.an.error.messag |
6460 | 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 | e.on.any......*...............ki |
6480 | 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 | nd.of.failure,.or.true.on.succes |
64a0 | 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 | s.......*.@access.public......*. |
64c0 | 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | @since..1.0......*/.....function |
64e0 | 20 68 65 6c 6f 28 24 64 6f 6d 61 69 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 | .helo($domain).....{.........if. |
6500 | 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f | (PEAR::isError($error.=.$this->_ |
6520 | 70 75 74 28 27 48 45 4c 4f 27 2c 20 24 64 6f 6d 61 69 6e 29 29 29 20 7b 0a 20 20 20 20 20 20 20 | put('HELO',.$domain))).{........ |
6540 | 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 | .....return.$error;.........}... |
6560 | 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d | ......if.(PEAR::isError($error.= |
6580 | 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a | .$this->_parseResponse(250))).{. |
65a0 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 | ............return.$error;...... |
65c0 | 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d | ...}..........return.true;.....} |
65e0 | 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 4d 41 49 4c 20 46 | ....../**......*.Send.the.MAIL.F |
6600 | 52 4f 4d 3a 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 | ROM:.command.......*......*.@par |
6620 | 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 73 65 6e 64 65 72 20 28 72 65 76 65 72 73 65 20 70 61 | am.string.The.sender.(reverse.pa |
6640 | 74 68 29 20 74 6f 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 | th).to.set.......*......*.@retur |
6660 | 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 | n.mixed.Returns.a.PEAR_Error.wit |
6680 | 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a | h.an.error.message.on.any......* |
66a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 | ...............kind.of.failure,. |
66c0 | 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 | or.true.on.success.......*.@acce |
66e0 | 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 | ss.public......*.@since..1.0.... |
6700 | 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 61 69 6c 46 72 6f 6d 28 24 73 65 6e 64 | ..*/.....function.mailFrom($send |
6720 | 65 72 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 | er).....{.........if.(PEAR::isEr |
6740 | 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 4d 41 49 4c 27 2c | ror($error.=.$this->_put('MAIL', |
6760 | 20 22 46 52 4f 4d 3a 3c 24 73 65 6e 64 65 72 3e 22 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | ."FROM:<$sender>"))).{.......... |
6780 | 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 | ...return.$error;.........}..... |
67a0 | 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 | ....if.(PEAR::isError($error.=.$ |
67c0 | 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a 20 20 | this->_parseResponse(250))).{... |
67e0 | 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 | ..........return.$error;........ |
6800 | 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a | .}..........return.true;.....}.. |
6820 | 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 52 43 50 54 20 54 4f 3a | ..../**......*.Send.the.RCPT.TO: |
6840 | 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 | .command.......*......*.@param.s |
6860 | 74 72 69 6e 67 20 54 68 65 20 72 65 63 69 70 69 65 6e 74 20 28 66 6f 72 77 61 72 64 20 70 61 74 | tring.The.recipient.(forward.pat |
6880 | 68 29 20 74 6f 20 61 64 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e | h).to.add.......*......*.@return |
68a0 | 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 | .mixed.Returns.a.PEAR_Error.with |
68c0 | 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 | .an.error.message.on.any......*. |
68e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f | ..............kind.of.failure,.o |
6900 | 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 | r.true.on.success.......*.@acces |
6920 | 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 | s.public......*.@since..1.0..... |
6940 | 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 63 70 74 54 6f 28 24 72 65 63 69 70 69 65 | .*/.....function.rcptTo($recipie |
6960 | 6e 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 | nt).....{.........if.(PEAR::isEr |
6980 | 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 52 43 50 54 27 2c | ror($error.=.$this->_put('RCPT', |
69a0 | 20 22 54 4f 3a 3c 24 72 65 63 69 70 69 65 6e 74 3e 22 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | ."TO:<$recipient>"))).{......... |
69c0 | 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 | ....return.$error;.........}.... |
69e0 | 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 | .....if.(PEAR::isError($error.=. |
6a00 | 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 61 72 72 61 79 28 32 35 30 2c | $this->_parseResponse(array(250, |
6a20 | 20 32 35 31 29 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 | .251)))).{.............return.$e |
6a40 | 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | rror;.........}..........return. |
6a60 | 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 51 75 6f 74 | true;.....}....../**......*.Quot |
6a80 | 65 20 74 68 65 20 64 61 74 61 20 73 6f 20 74 68 61 74 20 69 74 20 6d 65 65 74 73 20 53 4d 54 50 | e.the.data.so.that.it.meets.SMTP |
6aa0 | 20 73 74 61 6e 64 61 72 64 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 54 68 69 73 20 69 | .standards.......*......*.This.i |
6ac0 | 73 20 70 72 6f 76 69 64 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 65 20 70 75 62 6c 69 63 20 | s.provided.as.a.separate.public. |
6ae0 | 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 65 61 73 69 65 72 0a 20 20 | function.to.facilitate.easier... |
6b00 | 20 20 20 2a 20 6f 76 65 72 6c 6f 61 64 69 6e 67 20 66 6f 72 20 74 68 65 20 63 61 73 65 73 20 77 | ...*.overloading.for.the.cases.w |
6b20 | 68 65 72 65 20 69 74 20 69 73 20 64 65 73 69 72 61 62 6c 65 20 74 6f 20 63 75 73 74 6f 6d 69 7a | here.it.is.desirable.to.customiz |
6b40 | 65 20 74 68 65 0a 20 20 20 20 20 2a 20 71 75 6f 74 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 0a 20 | e.the......*.quoting.behavior... |
6b60 | 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 6d | ....*......*.@param.string.The.m |
6b80 | 65 73 73 61 67 65 20 74 65 78 74 20 74 6f 20 71 75 6f 74 65 2e 20 20 54 68 65 20 73 74 72 69 6e | essage.text.to.quote...The.strin |
6ba0 | 67 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 | g.must.be.passed......*......... |
6bc0 | 20 20 20 20 20 20 62 79 20 72 65 66 65 72 65 6e 63 65 2c 20 61 6e 64 20 74 68 65 20 74 65 78 74 | ......by.reference,.and.the.text |
6be0 | 20 77 69 6c 6c 20 62 65 20 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 6c 61 63 65 2e 0a 20 20 20 20 | .will.be.modified.in.place...... |
6c00 | 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 | .*......*.@access.public......*. |
6c20 | 40 73 69 6e 63 65 20 20 31 2e 32 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | @since..1.2......*/.....function |
6c40 | 20 71 75 6f 74 65 64 61 74 61 28 26 24 64 61 74 61 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 | .quotedata(&$data).....{........ |
6c60 | 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 43 68 61 6e 67 65 20 55 6e 69 78 20 28 5c 6e 29 20 | ./*..........*.Change.Unix.(\n). |
6c80 | 61 6e 64 20 4d 61 63 20 28 5c 72 29 20 6c 69 6e 65 66 65 65 64 73 20 69 6e 74 6f 20 49 6e 74 65 | and.Mac.(\r).linefeeds.into.Inte |
6ca0 | 72 6e 65 74 2d 73 74 61 6e 64 61 72 64 20 43 52 4c 46 0a 20 20 20 20 20 20 20 20 20 2a 20 28 5c | rnet-standard.CRLF..........*.(\ |
6cc0 | 72 5c 6e 29 20 6c 69 6e 65 66 65 65 64 73 2e 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 | r\n).linefeeds...........*/..... |
6ce0 | 20 20 20 20 24 64 61 74 61 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 22 2f 28 5b 5e 5c 72 | ....$data.=.preg_replace("/([^\r |
6d00 | 5d 7b 31 7d 29 5c 6e 2f 22 2c 20 22 5c 5c 31 5c 72 5c 6e 22 2c 20 24 64 61 74 61 29 3b 0a 20 20 | ]{1})\n/",."\\1\r\n",.$data);... |
6d20 | 20 20 20 20 20 20 24 64 61 74 61 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 22 2f 5c 6e 5c | ......$data.=.preg_replace("/\n\ |
6d40 | 6e 2f 22 2c 20 22 5c 6e 5c 72 5c 6e 22 2c 20 24 64 61 74 61 29 3b 0a 0a 20 20 20 20 20 20 20 20 | n/",."\n\r\n",.$data);.......... |
6d60 | 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 42 65 63 61 75 73 65 20 61 20 73 69 6e 67 6c 65 20 6c | /*..........*.Because.a.single.l |
6d80 | 65 61 64 69 6e 67 20 70 65 72 69 6f 64 20 28 2e 29 20 73 69 67 6e 69 66 69 65 73 20 61 6e 20 65 | eading.period.(.).signifies.an.e |
6da0 | 6e 64 20 74 6f 20 74 68 65 20 64 61 74 61 2c 0a 20 20 20 20 20 20 20 20 20 2a 20 6c 65 67 69 74 | nd.to.the.data,..........*.legit |
6dc0 | 69 6d 61 74 65 20 6c 65 61 64 69 6e 67 20 70 65 72 69 6f 64 73 20 6e 65 65 64 20 74 6f 20 62 65 | imate.leading.periods.need.to.be |
6de0 | 20 22 64 6f 75 62 6c 65 64 22 20 28 65 2e 67 2e 20 27 2e 2e 27 29 2e 0a 20 20 20 20 20 20 20 20 | ."doubled".(e.g..'..').......... |
6e00 | 20 2a 2f 0a 20 20 20 20 20 20 20 20 24 64 61 74 61 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 | .*/.........$data.=.preg_replace |
6e20 | 28 22 2f 5c 6e 5c 2e 2f 22 2c 20 22 5c 6e 2e 2e 22 2c 20 24 64 61 74 61 29 3b 0a 20 20 20 20 7d | ("/\n\./",."\n..",.$data);.....} |
6e40 | 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 44 41 54 41 20 63 | ....../**......*.Send.the.DATA.c |
6e60 | 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 | ommand.......*......*.@param.str |
6e80 | 69 6e 67 20 54 68 65 20 6d 65 73 73 61 67 65 20 62 6f 64 79 20 74 6f 20 73 65 6e 64 2e 0a 20 20 | ing.The.message.body.to.send.... |
6ea0 | 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e | ...*......*.@return.mixed.Return |
6ec0 | 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 | s.a.PEAR_Error.with.an.error.mes |
6ee0 | 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sage.on.any......*.............. |
6f00 | 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 | .kind.of.failure,.or.true.on.suc |
6f20 | 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 | cess.......*.@access.public..... |
6f40 | 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 | .*.@since..1.0......*/.....funct |
6f60 | 69 6f 6e 20 64 61 74 61 28 24 64 61 74 61 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2a | ion.data($data).....{........./* |
6f80 | 0a 20 20 20 20 20 20 20 20 20 2a 20 52 46 43 20 31 38 37 30 2c 20 73 65 63 74 69 6f 6e 20 33 2c | ..........*.RFC.1870,.section.3, |
6fa0 | 20 73 75 62 73 65 63 74 69 6f 6e 20 33 20 73 74 61 74 65 73 20 22 61 20 76 61 6c 75 65 20 6f 66 | .subsection.3.states."a.value.of |
6fc0 | 20 7a 65 72 6f 20 69 6e 64 69 63 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 2a 20 74 68 61 74 20 | .zero.indicates..........*.that. |
6fe0 | 6e 6f 20 66 69 78 65 64 20 6d 61 78 69 6d 75 6d 20 6d 65 73 73 61 67 65 20 73 69 7a 65 20 69 73 | no.fixed.maximum.message.size.is |
7000 | 20 69 6e 20 66 6f 72 63 65 22 2e 20 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 69 74 0a 20 20 20 | .in.force"...Furthermore,.it.... |
7020 | 20 20 20 20 20 20 2a 20 73 61 79 73 20 74 68 61 74 20 69 66 20 22 74 68 65 20 70 61 72 61 6d 65 | ......*.says.that.if."the.parame |
7040 | 74 65 72 20 69 73 20 6f 6d 69 74 74 65 64 20 6e 6f 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 | ter.is.omitted.no.information.is |
7060 | 20 63 6f 6e 76 65 79 65 64 0a 20 20 20 20 20 20 20 20 20 2a 20 61 62 6f 75 74 20 74 68 65 20 73 | .conveyed..........*.about.the.s |
7080 | 65 72 76 65 72 27 73 20 66 69 78 65 64 20 6d 61 78 69 6d 75 6d 20 6d 65 73 73 61 67 65 20 73 69 | erver's.fixed.maximum.message.si |
70a0 | 7a 65 22 2e 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 | ze"...........*/.........if.(iss |
70c0 | 65 74 28 24 74 68 69 73 2d 3e 5f 65 73 6d 74 70 5b 27 53 49 5a 45 27 5d 29 20 26 26 20 28 24 74 | et($this->_esmtp['SIZE']).&&.($t |
70e0 | 68 69 73 2d 3e 5f 65 73 6d 74 70 5b 27 53 49 5a 45 27 5d 20 3e 20 30 29 29 20 7b 0a 20 20 20 20 | his->_esmtp['SIZE'].>.0)).{..... |
7100 | 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 3d 20 24 74 68 | ........if.(strlen($data).>=.$th |
7120 | 69 73 2d 3e 5f 65 73 6d 74 70 5b 27 53 49 5a 45 27 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | is->_esmtp['SIZE']).{........... |
7140 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 69 73 63 6f 6e 6e 65 63 74 28 29 3b 0a 20 20 20 20 20 | ......$this->disconnect();...... |
7160 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 | ...........return.new.PEAR_Error |
7180 | 28 27 4d 65 73 73 61 67 65 20 73 69 7a 65 20 65 78 63 65 64 65 73 20 74 68 65 20 73 65 72 76 65 | ('Message.size.excedes.the.serve |
71a0 | 72 20 6c 69 6d 69 74 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 | r.limit');.............}........ |
71c0 | 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2a 20 51 75 6f 74 65 20 74 68 65 20 64 61 74 61 20 62 61 | .}........../*.Quote.the.data.ba |
71e0 | 73 65 64 20 6f 6e 20 74 68 65 20 53 4d 54 50 20 73 74 61 6e 64 61 72 64 73 2e 20 2a 2f 0a 20 20 | sed.on.the.SMTP.standards..*/... |
7200 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 71 75 6f 74 65 64 61 74 61 28 24 64 61 74 61 29 3b 0a 0a | ......$this->quotedata($data);.. |
7220 | 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 | ........if.(PEAR::isError($error |
7240 | 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 44 41 54 41 27 29 29 29 20 7b 0a 20 20 20 20 20 | .=.$this->_put('DATA'))).{...... |
7260 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a | .......return.$error;.........}. |
7280 | 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 | ........if.(PEAR::isError($error |
72a0 | 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 33 35 34 29 29 29 20 | .=.$this->_parseResponse(354))). |
72c0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 | {.............return.$error;.... |
72e0 | 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f | .....}..........if.(PEAR::isErro |
7300 | 72 28 24 74 68 69 73 2d 3e 5f 73 65 6e 64 28 24 64 61 74 61 20 2e 20 22 5c 72 5c 6e 2e 5c 72 5c | r($this->_send($data..."\r\n.\r\ |
7320 | 6e 22 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 | n"))).{.............return.new.P |
7340 | 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 | EAR_Error('write.to.socket.faile |
7360 | 64 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a | d');.........}.........if.(PEAR: |
7380 | 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 | :isError($error.=.$this->_parseR |
73a0 | 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | esponse(250))).{.............ret |
73c0 | 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 | urn.$error;.........}..........r |
73e0 | 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 | eturn.true;.....}....../**...... |
7400 | 2a 20 53 65 6e 64 20 74 68 65 20 53 45 4e 44 20 46 52 4f 4d 3a 20 63 6f 6d 6d 61 6e 64 2e 0a 20 | *.Send.the.SEND.FROM:.command... |
7420 | 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 72 | ....*......*.@param.string.The.r |
7440 | 65 76 65 72 73 65 20 70 61 74 68 20 74 6f 20 73 65 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 | everse.path.to.send.......*..... |
7460 | 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f | .*.@return.mixed.Returns.a.PEAR_ |
7480 | 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 | Error.with.an.error.message.on.a |
74a0 | 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 | ny......*...............kind.of. |
74c0 | 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 | failure,.or.true.on.success..... |
74e0 | 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 | ..*.@access.public......*.@since |
7500 | 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 5f | ..1.0......*/.....function.send_ |
7520 | 66 72 6f 6d 28 24 70 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 | from($path).....{.........if.(PE |
7540 | 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 | AR::isError($error.=.$this->_put |
7560 | 28 27 53 45 4e 44 27 2c 20 22 46 52 4f 4d 3a 3c 24 70 61 74 68 3e 22 29 29 29 20 7b 0a 20 20 20 | ('SEND',."FROM:<$path>"))).{.... |
7580 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 | .........return.$error;......... |
75a0 | 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 | }.........if.(PEAR::isError($err |
75c0 | 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 | or.=.$this->_parseResponse(250)) |
75e0 | 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 | ).{.............return.$error;.. |
7600 | 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 | .......}..........return.true;.. |
7620 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 53 4f | ...}....../**......*.Send.the.SO |
7640 | 4d 4c 20 46 52 4f 4d 3a 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 | ML.FROM:.command.......*......*. |
7660 | 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 72 65 76 65 72 73 65 20 70 61 74 68 20 74 | @param.string.The.reverse.path.t |
7680 | 6f 20 73 65 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 | o.send.......*......*.@return.mi |
76a0 | 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e | xed.Returns.a.PEAR_Error.with.an |
76c0 | 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 | .error.message.on.any......*.... |
76e0 | 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 | ...........kind.of.failure,.or.t |
7700 | 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 | rue.on.success.......*.@access.p |
7720 | 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f | ublic......*.@since..1.0......*/ |
7740 | 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 6f 6d 6c 5f 66 72 6f 6d 28 24 70 61 74 68 29 0a 20 | .....function.soml_from($path).. |
7760 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 | ...{.........if.(PEAR::isError($ |
7780 | 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 53 4f 4d 4c 27 2c 20 22 46 52 4f | error.=.$this->_put('SOML',."FRO |
77a0 | 4d 3a 3c 24 70 61 74 68 3e 22 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | M:<$path>"))).{.............retu |
77c0 | 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 | rn.$error;.........}.........if. |
77e0 | 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f | (PEAR::isError($error.=.$this->_ |
7800 | 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | parseResponse(250))).{.......... |
7820 | 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 | ...return.$error;.........}..... |
7840 | 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a | .....return.true;.....}....../** |
7860 | 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 53 41 4d 4c 20 46 52 4f 4d 3a 20 63 6f 6d 6d | ......*.Send.the.SAML.FROM:.comm |
7880 | 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 | and.......*......*.@param.string |
78a0 | 20 54 68 65 20 72 65 76 65 72 73 65 20 70 61 74 68 20 74 6f 20 73 65 6e 64 2e 0a 20 20 20 20 20 | .The.reverse.path.to.send....... |
78c0 | 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 | *......*.@return.mixed.Returns.a |
78e0 | 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 | .PEAR_Error.with.an.error.messag |
7900 | 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 | e.on.any......*...............ki |
7920 | 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 | nd.of.failure,.or.true.on.succes |
7940 | 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 | s.......*.@access.public......*. |
7960 | 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | @since..1.0......*/.....function |
7980 | 20 73 61 6d 6c 5f 66 72 6f 6d 28 24 70 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 | .saml_from($path).....{......... |
79a0 | 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 | if.(PEAR::isError($error.=.$this |
79c0 | 2d 3e 5f 70 75 74 28 27 53 41 4d 4c 27 2c 20 22 46 52 4f 4d 3a 3c 24 70 61 74 68 3e 22 29 29 29 | ->_put('SAML',."FROM:<$path>"))) |
79e0 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 | .{.............return.$error;... |
7a00 | 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f | ......}.........if.(PEAR::isErro |
7a20 | 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 | r($error.=.$this->_parseResponse |
7a40 | 28 32 35 30 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 | (250))).{.............return.$er |
7a60 | 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 | ror;.........}..........return.t |
7a80 | 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 | rue;.....}....../**......*.Send. |
7aa0 | 74 68 65 20 52 53 45 54 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 | the.RSET.command.......*......*. |
7ac0 | 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 | @return.mixed.Returns.a.PEAR_Err |
7ae0 | 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a | or.with.an.error.message.on.any. |
7b00 | 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 | .....*...............kind.of.fai |
7b20 | 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a | lure,.or.true.on.success.......* |
7b40 | 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 | .@access.public......*.@since..1 |
7b60 | 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 72 73 65 74 28 29 0a 20 | .0......*/.....function.rset().. |
7b80 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 | ...{.........if.(PEAR::isError($ |
7ba0 | 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 52 53 45 54 27 29 29 29 20 7b 0a | error.=.$this->_put('RSET'))).{. |
7bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 | ............return.$error;...... |
7be0 | 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 | ...}.........if.(PEAR::isError($ |
7c00 | 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 | error.=.$this->_parseResponse(25 |
7c20 | 30 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 | 0))).{.............return.$error |
7c40 | 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 | ;.........}..........return.true |
7c60 | 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 | ;.....}....../**......*.Send.the |
7c80 | 20 56 52 46 59 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 | .VRFY.command.......*......*.@pa |
7ca0 | 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 76 65 72 69 66 79 0a | ram.string.The.string.to.verify. |
7cc0 | 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 | .....*......*.@return.mixed.Retu |
7ce0 | 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6d | rns.a.PEAR_Error.with.an.error.m |
7d00 | 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 | essage.on.any......*............ |
7d20 | 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f 6e 20 73 | ...kind.of.failure,.or.true.on.s |
7d40 | 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 | uccess.......*.@access.public... |
7d60 | 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e | ...*.@since..1.0......*/.....fun |
7d80 | 63 74 69 6f 6e 20 76 72 66 79 28 24 73 74 72 69 6e 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | ction.vrfy($string).....{....... |
7da0 | 20 20 2f 2a 20 4e 6f 74 65 3a 20 32 35 31 20 69 73 20 61 6c 73 6f 20 61 20 76 61 6c 69 64 20 72 | ../*.Note:.251.is.also.a.valid.r |
7dc0 | 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 2a 2f 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 | esponse.code.*/.........if.(PEAR |
7de0 | 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e 5f 70 75 74 28 27 | ::isError($error.=.$this->_put(' |
7e00 | 56 52 46 59 27 2c 20 24 73 74 72 69 6e 67 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | VRFY',.$string))).{............. |
7e20 | 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 | return.$error;.........}........ |
7e40 | 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 | .if.(PEAR::isError($error.=.$thi |
7e60 | 73 2d 3e 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a 20 20 20 20 20 | s->_parseResponse(250))).{...... |
7e80 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a | .......return.$error;.........}. |
7ea0 | 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 | .........return.true;.....}..... |
7ec0 | 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 4e 4f 4f 50 20 63 6f 6d 6d 61 6e | ./**......*.Send.the.NOOP.comman |
7ee0 | 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 | d.......*......*.@return.mixed.R |
7f00 | 65 74 75 72 6e 73 20 61 20 50 45 41 52 5f 45 72 72 6f 72 20 77 69 74 68 20 61 6e 20 65 72 72 6f | eturns.a.PEAR_Error.with.an.erro |
7f20 | 72 20 6d 65 73 73 61 67 65 20 6f 6e 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 | r.message.on.any......*......... |
7f40 | 20 20 20 20 20 20 6b 69 6e 64 20 6f 66 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 72 75 65 20 6f | ......kind.of.failure,.or.true.o |
7f60 | 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 | n.success.......*.@access.public |
7f80 | 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 31 2e 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 | ......*.@since..1.0......*/..... |
7fa0 | 66 75 6e 63 74 69 6f 6e 20 6e 6f 6f 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 | function.noop().....{.........if |
7fc0 | 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e | .(PEAR::isError($error.=.$this-> |
7fe0 | 5f 70 75 74 28 27 4e 4f 4f 50 27 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | _put('NOOP'))).{.............ret |
8000 | 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 | urn.$error;.........}.........if |
8020 | 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 65 72 72 6f 72 20 3d 20 24 74 68 69 73 2d 3e | .(PEAR::isError($error.=.$this-> |
8040 | 5f 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 32 35 30 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | _parseResponse(250))).{......... |
8060 | 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 | ....return.$error;.........}.... |
8080 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a | ......return.true;.....}....../* |
80a0 | 2a 0a 20 20 20 20 20 2a 20 42 61 63 6b 77 61 72 64 73 2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 | *......*.Backwards-compatibility |
80c0 | 20 6d 65 74 68 6f 64 2e 20 20 69 64 65 6e 74 69 66 79 53 65 6e 64 65 72 28 29 27 73 20 66 75 6e | .method...identifySender()'s.fun |
80e0 | 63 74 69 6f 6e 61 6c 69 74 79 20 69 73 0a 20 20 20 20 20 2a 20 6e 6f 77 20 68 61 6e 64 6c 65 64 | ctionality.is......*.now.handled |
8100 | 20 69 6e 74 65 72 6e 61 6c 6c 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 | .internally.......*......*.@retu |
8120 | 72 6e 20 20 62 6f 6f 6c 65 61 6e 20 20 20 20 20 54 68 69 73 20 6d 65 74 68 6f 64 20 61 6c 77 61 | rn..boolean.....This.method.alwa |
8140 | 79 73 20 72 65 74 75 72 6e 20 74 72 75 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 | ys.return.true.......*......*.@a |
8160 | 63 63 65 73 73 20 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 73 69 6e 63 65 20 20 20 31 2e | ccess..public......*.@since...1. |
8180 | 30 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 64 65 6e 74 69 66 79 53 | 0......*/.....function.identifyS |
81a0 | 65 6e 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 | ender().....{.........return.tru |
81c0 | 65 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | e;.....}.}..?>.................. |
81e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |