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 32 30 31 30 20 00 20 20 20 37 36 34 20 00 20 20 20 20 | ....100644....2010.....764...... |
0080 | 20 20 20 31 35 33 31 20 20 37 35 31 36 34 36 32 34 35 34 20 20 20 36 33 36 34 20 00 00 00 00 00 | ...1531..7516462454...6364...... |
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 3a 3a 20 63 6c 61 73 73 | .using.PEAR's.Net_Socket::.class |
0300 | 2e 3c 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 | .</description>...<maintainers>. |
0320 | 20 20 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 | ....<maintainer>.......<user>cha |
0340 | 67 65 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 | genbu</user>.......<name>Chuck.H |
0360 | 61 67 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 | agenbuch</name>.......<email>chu |
0380 | 63 6b 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 | ck@horde.org</email>.......<role |
03a0 | 3e 6c 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 | >lead</role>.....</maintainer>.. |
03c0 | 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 73 3e 0a 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 | .</maintainers>...<release>..... |
03e0 | 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c 64 61 74 65 | <version>1.0</version>.....<date |
0400 | 3e 32 30 30 32 2d 30 36 2d 31 31 3c 2f 64 61 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 6e 73 65 3e | >2002-06-11</date>.....<license> |
0420 | 50 48 50 20 4c 69 63 65 6e 73 65 3c 2f 6c 69 63 65 6e 73 65 3e 0a 20 20 20 20 3c 73 74 61 74 65 | PHP.License</license>.....<state |
0440 | 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 3c 6e 6f 74 65 73 3e 49 6e 69 74 69 | >stable</state>.....<notes>Initi |
0460 | 61 6c 20 72 65 6c 65 61 73 65 20 61 73 20 50 45 41 52 20 70 61 63 6b 61 67 65 3c 2f 6e 6f 74 65 | al.release.as.PEAR.package</note |
0480 | 73 3e 0a 20 20 20 20 3c 64 65 70 73 3e 0a 20 20 20 20 20 20 3c 64 65 70 20 74 79 70 65 3d 22 70 | s>.....<deps>.......<dep.type="p |
04a0 | 6b 67 22 20 72 65 6c 3d 22 68 61 73 22 3e 4e 65 74 5f 53 6f 63 6b 65 74 3c 2f 64 65 70 3e 0a 20 | kg".rel="has">Net_Socket</dep>.. |
04c0 | 20 20 20 3c 2f 64 65 70 73 3e 0a 20 20 20 20 3c 66 69 6c 65 6c 69 73 74 3e 0a 20 20 20 20 20 20 | ...</deps>.....<filelist>....... |
04e0 | 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 62 30 66 62 66 32 36 | <file.role="php".md5sum="b0fbf26 |
0500 | 61 63 61 36 66 39 36 32 33 66 31 32 61 35 35 39 38 33 65 39 35 31 35 37 35 22 20 6e 61 6d 65 3d | aca6f9623f12a55983e951575".name= |
0520 | 22 4e 65 74 2f 53 4d 54 50 2e 70 68 70 22 2f 3e 0a 20 20 20 20 3c 2f 66 69 6c 65 6c 69 73 74 3e | "Net/SMTP.php"/>.....</filelist> |
0540 | 0a 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a 00 00 00 00 00 00 00 | ...</release>.</package>........ |
0560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0600 | 4e 65 74 5f 53 4d 54 50 2d 31 2e 30 2f 4e 65 74 2f 53 4d 54 50 2e 70 68 70 00 00 00 00 00 00 00 | Net_SMTP-1.0/Net/SMTP.php....... |
0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0660 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 32 30 31 30 20 00 20 20 20 37 36 34 20 00 20 20 20 20 | ....100644....2010.....764...... |
0680 | 20 20 33 34 31 30 36 20 20 37 35 30 30 31 32 34 30 31 33 20 20 31 30 31 35 35 20 00 00 00 00 00 | ..34106..7500124013..10155...... |
06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0800 | 3c 3f 70 68 70 0a 2f 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 | <?php.//.//.+------------------- |
0820 | 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 | -------------------------------- |
0840 | 2d 2d 2d 2d 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 | -------------------+.//.|.PHP.Ve |
0860 | 72 73 69 6f 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 | rsion.4......................... |
0880 | 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 7c | ...............................| |
08a0 | 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 2d 2d 2d 2d | .//.+--------------------------- |
08c0 | 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 | -------------------------------- |
08e0 | 2d 2d 2d 2d 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 | -----------+.//.|.Copyright.(c). |
0900 | 31 39 39 37 2d 32 30 30 32 20 54 68 65 20 50 48 50 20 47 72 6f 75 70 20 20 20 20 20 20 20 20 20 | 1997-2002.The.PHP.Group......... |
0920 | 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 2b 2d 2d 2d | .......................|.//.+--- |
0940 | 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 | -------------------------------- |
0960 | 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 | -------------------------------- |
0980 | 2d 2d 2d 2b 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 | ---+.//.|.This.source.file.is.su |
09a0 | 62 6a 65 63 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 | bject.to.version.2.02.of.the.PHP |
09c0 | 20 6c 69 63 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 | .license,......|.//.|.that.is.bu |
09e0 | 6e 64 6c 65 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 | ndled.with.this.package.in.the.f |
0a00 | 69 6c 65 20 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 | ile.LICENSE,.and.is........|.//. |
0a20 | 7c 20 61 76 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 | |.available.at.through.the.world |
0a40 | 2d 77 69 64 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 | -wide-web.at.................... |
0a60 | 20 20 20 20 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 | .......|.//.|.http://www.php.net |
0a80 | 2f 6c 69 63 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 | /license/2_02.txt............... |
0aa0 | 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 49 66 20 79 6f 75 | ...................|.//.|.If.you |
0ac0 | 20 64 69 64 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 | .did.not.receive.a.copy.of.the.P |
0ae0 | 48 50 20 6c 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 | HP.license.and.are.unable.to...| |
0b00 | 0a 2f 2f 20 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 | .//.|.obtain.it.through.the.worl |
0b20 | 64 2d 77 69 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 | d-wide-web,.please.send.a.note.t |
0b40 | 6f 20 20 20 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 | o..........|.//.|.license@php.ne |
0b60 | 74 20 73 6f 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 | t.so.we.can.mail.you.a.copy.imme |
0b80 | 64 69 61 74 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 | diately................|.//.+--- |
0ba0 | 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 | -------------------------------- |
0bc0 | 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 | -------------------------------- |
0be0 | 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 3a 20 43 68 75 63 6b 20 48 61 67 65 6e 62 75 63 | ---+.//.|.Author:.Chuck.Hagenbuc |
0c00 | 68 20 3c 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 | h.<chuck@horde.org>............. |
0c20 | 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 2d 2d 2d 2d | ...............|.//.+----------- |
0c40 | 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 | -------------------------------- |
0c60 | 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 0a 0a 72 65 | ---------------------------+..re |
0c80 | 71 75 69 72 65 5f 6f 6e 63 65 20 27 50 45 41 52 2e 70 68 70 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 50 | quire_once.'PEAR.php';../**..*.P |
0ca0 | 72 6f 76 69 64 65 73 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 | rovides.an.implementation.of.the |
0cc0 | 20 53 4d 54 50 20 70 72 6f 74 6f 63 6f 6c 20 75 73 69 6e 67 20 50 45 41 52 27 73 0a 20 2a 20 4e | .SMTP.protocol.using.PEAR's..*.N |
0ce0 | 65 74 5f 53 6f 63 6b 65 74 3a 3a 20 63 6c 61 73 73 2e 0a 20 2a 2f 0a 63 6c 61 73 73 20 4e 65 74 | et_Socket::.class...*/.class.Net |
0d00 | 5f 53 4d 54 50 20 65 78 74 65 6e 64 73 20 50 45 41 52 20 7b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 | _SMTP.extends.PEAR.{....../**... |
0d20 | 20 20 20 2a 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 | ...*.The.server.to.connect.to... |
0d40 | 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 | ....*.@var.string......*/.....va |
0d60 | 72 20 24 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 2a 2a 0a | r.$host.=.'localhost';....../**. |
0d80 | 20 20 20 20 20 2a 20 54 68 65 20 70 6f 72 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 0a 20 | .....*.The.port.to.connect.to... |
0da0 | 20 20 20 20 2a 20 40 76 61 72 20 69 6e 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 | ....*.@var.int......*/.....var.$ |
0dc0 | 70 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 | port.=.25;....../**......*.The.v |
0de0 | 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 |
0e00 | 72 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 | r.HELO.......*.@var.string...... |
0e20 | 2a 2f 0a 20 20 20 20 76 61 72 20 24 6c 6f 63 61 6c 68 6f 73 74 20 3d 20 27 6c 6f 63 61 6c 68 6f | */.....var.$localhost.=.'localho |
0e40 | 73 74 27 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 20 | st';....../**......*.The.socket. |
0e60 | 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 74 | resource.being.used.to.connect.t |
0e80 | 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 72 | o.the.SMTP.server.......*.@var.r |
0ea0 | 65 73 6f 75 72 63 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 73 6f 63 6b 65 74 3b | esource......*/.....var.$socket; |
0ec0 | 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 |
0ee0 | 20 72 65 70 6c 79 20 63 6f 64 65 0a 20 20 20 20 20 2a 20 40 76 61 72 20 69 6e 74 0a 20 20 20 20 | .reply.code......*.@var.int..... |
0f00 | 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 63 6f 64 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 | .*/.....var.$code;....../**..... |
0f20 | 20 2a 20 53 74 6f 72 65 73 20 64 65 74 65 63 74 65 64 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 | .*.Stores.detected.features.of.t |
0f40 | 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 61 72 72 61 | he.SMTP.server.......*.@var.arra |
0f60 | 79 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 65 73 6d 74 70 3b 0a 0a 20 20 20 20 2f | y......*/.....var.$esmtp;....../ |
0f80 | 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 72 65 61 64 20 66 72 6f | **......*.The.last.line.read.fro |
0fa0 | 6d 20 74 68 65 20 73 65 72 76 65 72 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 | m.the.server.......*.@var.string |
0fc0 | 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 6c 61 73 74 6c 69 6e 65 3b 0a 0a 20 20 20 | ......*/.....var.$lastline;..... |
0fe0 | 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 20 20 2a 0a 20 | ./**......*.Constructor......*.. |
1000 | 20 20 20 20 2a 20 49 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 | ....*.Instantiates.a.new.Net_SMT |
1020 | 50 20 6f 62 6a 65 63 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 | P.object,.overriding.any.default |
1040 | 73 0a 20 20 20 20 20 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 | s......*.with.parameters.that.ar |
1060 | 65 20 70 61 73 73 65 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 | e.passed.in.......*......*.@para |
1080 | 6d 20 73 74 72 69 6e 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 | m.string.The.server.to.connect.t |
10a0 | 6f 2e 0a 20 20 20 20 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 | o.......*.@param.int.The.port.to |
10c0 | 20 63 6f 6e 6e 65 63 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 | .connect.to.......*.@param.strin |
10e0 | 67 20 54 68 65 20 76 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 | g.The.value.to.give.when.sending |
1100 | 20 45 48 4c 4f 20 6f 72 20 48 45 4c 4f 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 | .EHLO.or.HELO.......*/.....funct |
1120 | 69 6f 6e 20 4e 65 74 5f 53 4d 54 50 28 24 68 6f 73 74 20 3d 20 6e 75 6c 6c 2c 20 24 70 6f 72 74 | ion.Net_SMTP($host.=.null,.$port |
1140 | 20 3d 20 6e 75 6c 6c 2c 20 24 6c 6f 63 61 6c 68 6f 73 74 20 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 | .=.null,.$localhost.=.null).{... |
1160 | 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 68 6f 73 74 29 29 20 24 74 68 69 73 2d 3e 68 | ......if.(isset($host)).$this->h |
1180 | 6f 73 74 20 3d 20 24 68 6f 73 74 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 | ost.=.$host;.........if.(isset($ |
11a0 | 70 6f 72 74 29 29 20 24 74 68 69 73 2d 3e 70 6f 72 74 20 3d 20 24 70 6f 72 74 3b 0a 20 20 20 20 | port)).$this->port.=.$port;..... |
11c0 | 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 61 6c 68 6f 73 74 29 29 20 24 74 68 69 73 | ....if.(isset($localhost)).$this |
11e0 | 2d 3e 6c 6f 63 61 6c 68 6f 73 74 20 3d 20 24 6c 6f 63 61 6c 68 6f 73 74 3b 0a 20 20 20 20 7d 0a | ->localhost.=.$localhost;.....}. |
1200 | 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 20 63 6f 6e 6e 65 | ...../**......*.Attempt.to.conne |
1220 | 63 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 | ct.to.the.SMTP.server.......*... |
1240 | 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 20 50 45 41 | ...*.@return.mixed.Returns.a.PEA |
1260 | 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 65 20 6f 6e | R_Error.with.an.error.message.on |
1280 | 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 6e 64 20 6f | .any......*...............kind.o |
12a0 | 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 73 2e 0a 20 | f.failure,.or.true.on.success... |
12c0 | 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 2f 0a 20 20 20 | ....*.@access.public......*/.... |
12e0 | 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 28 29 20 7b 0a 20 20 20 20 20 20 20 20 69 6e | .function.connect().{.........in |
1300 | 63 6c 75 64 65 5f 6f 6e 63 65 20 27 4e 65 74 2f 53 6f 63 6b 65 74 2e 70 68 70 27 3b 0a 0a 20 20 | clude_once.'Net/Socket.php';.... |
1320 | 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 74 68 69 73 2d 3e 73 | ......if.(PEAR::isError($this->s |
1340 | 6f 63 6b 65 74 20 3d 20 6e 65 77 20 4e 65 74 5f 53 6f 63 6b 65 74 28 29 29 29 20 7b 20 72 65 74 | ocket.=.new.Net_Socket())).{.ret |
1360 | 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 75 6e 61 62 6c 65 20 74 6f 20 63 72 | urn.new.PEAR_Error('unable.to.cr |
1380 | 65 61 74 65 20 61 20 73 6f 63 6b 65 74 20 6f 62 6a 65 63 74 27 29 3b 20 7d 0a 20 20 20 20 20 20 | eate.a.socket.object');.}....... |
13a0 | 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 | ..if.(PEAR::isError($this->socke |
13c0 | 74 2d 3e 63 6f 6e 6e 65 63 74 28 24 74 68 69 73 2d 3e 68 6f 73 74 2c 20 24 74 68 69 73 2d 3e 70 | t->connect($this->host,.$this->p |
13e0 | 6f 72 74 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 | ort))).{.return.new.PEAR_Error(' |
1400 | 75 6e 61 62 6c 65 20 74 6f 20 6f 70 65 6e 20 73 6f 63 6b 65 74 27 29 3b 20 7d 0a 0a 20 20 20 20 | unable.to.open.socket');.}...... |
1420 | 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 76 61 6c | ....if.(PEAR::isError($this->val |
1440 | 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 32 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 | idateResponse('220'))).{.return. |
1460 | 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 73 6d 74 70 20 73 65 72 76 65 72 20 6e 6f 74 20 | new.PEAR_Error('smtp.server.not. |
1480 | 32 32 30 20 72 65 61 64 79 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 | 220.ready');.}.........if.(!$thi |
14a0 | 73 2d 3e 69 64 65 6e 74 69 66 79 53 65 6e 64 65 72 28 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 | s->identifySender()).{.return.ne |
14c0 | 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 75 6e 61 62 6c 65 20 74 6f 20 69 64 65 6e 74 69 66 79 | w.PEAR_Error('unable.to.identify |
14e0 | 20 73 6d 74 70 20 73 65 72 76 65 72 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 | .smtp.server');.}..........retur |
1500 | 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 2a 20 41 74 | n.true;.....}....../**......*.At |
1520 | 74 65 6d 70 74 20 74 6f 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 20 74 68 65 20 53 4d 54 | tempt.to.disconnect.from.the.SMT |
1540 | 50 20 73 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 | P.server.......*......*.@return. |
1560 | 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 20 | mixed.Returns.a.PEAR_Error.with. |
1580 | 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 20 | an.error.message.on.any......*.. |
15a0 | 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 72 | .............kind.of.failure,.or |
15c0 | 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 73 | .true.on.success.......*.@access |
15e0 | 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 | .public......*/.....function.dis |
1600 | 63 6f 6e 6e 65 63 74 28 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 | connect().{.........if.(PEAR::is |
1620 | 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 51 55 49 54 | Error($this->socket->write("QUIT |
1640 | 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 | \r\n"))).{.return.new.PEAR_Error |
1660 | 28 27 77 72 69 74 65 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 | ('write.to.socket.failed');.}... |
1680 | 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e | ......if.(!$this->validateRespon |
16a0 | 73 65 28 27 32 32 31 27 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 | se('221')).{.return.new.PEAR_Err |
16c0 | 6f 72 28 27 32 32 31 20 42 79 65 20 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 20 20 | or('221.Bye.not.received');.}... |
16e0 | 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 74 68 69 73 2d 3e 73 | ......if.(PEAR::isError($this->s |
1700 | 6f 63 6b 65 74 2d 3e 64 69 73 63 6f 6e 6e 65 63 74 28 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e | ocket->disconnect())).{.return.n |
1720 | 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 73 6f 63 6b 65 74 20 64 69 73 63 6f 6e 6e 65 63 74 | ew.PEAR_Error('socket.disconnect |
1740 | 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 | .failed');.}..........return.tru |
1760 | 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 |
1780 | 20 74 6f 20 64 6f 20 53 4d 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 | .to.do.SMTP.authentication...... |
17a0 | 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 65 72 | .*......*.@param.string.The.user |
17c0 | 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 40 70 | id.to.authenticate.as.......*.@p |
17e0 | 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 74 68 | aram.string.The.password.to.auth |
1800 | 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 72 65 | enticate.with.......*......*.@re |
1820 | 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 72 20 | turn.mixed.Returns.a.PEAR_Error. |
1840 | 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 20 20 | with.an.error.message.on.any.... |
1860 | 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 75 72 | ..*...............kind.of.failur |
1880 | 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 40 61 | e,.or.true.on.success.......*.@a |
18a0 | 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 66 75 6e 63 74 69 6f | ccess.public......*/.....functio |
18c0 | 6e 20 61 75 74 68 28 24 75 69 64 2c 20 24 70 77 64 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2a 20 | n.auth($uid,.$pwd).{........./*. |
18e0 | 4e 6f 74 65 3a 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 63 68 65 63 6b 69 6e 67 20 69 66 20 | Note:.not.currently.checking.if. |
1900 | 41 55 54 48 20 4c 4f 47 49 4e 20 69 73 20 61 6c 6c 6f 77 65 64 20 2a 2f 0a 20 20 20 20 20 20 20 | AUTH.LOGIN.is.allowed.*/........ |
1920 | 20 2f 2a 20 4e 6f 74 65 3a 20 6f 6e 6c 79 20 61 6c 6c 6f 77 73 20 6f 6e 65 20 61 75 74 68 65 6e | ./*.Note:.only.allows.one.authen |
1940 | 74 69 63 61 74 69 6f 6e 20 6d 65 63 68 61 6e 69 73 6d 20 2a 2f 0a 0a 20 20 20 20 20 20 20 20 69 | tication.mechanism.*/..........i |
1960 | 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 73 6d 74 70 5b 27 41 55 54 48 27 5d 29 29 | f.(!isset($this->esmtp['AUTH'])) |
1980 | 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 61 75 74 68 20 6e | .{.return.new.PEAR_Error('auth.n |
19a0 | 6f 74 20 73 75 70 70 6f 72 74 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 | ot.supported');.}..........if.(P |
19c0 | 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 | EAR::isError($this->socket->writ |
19e0 | 65 28 22 41 55 54 48 20 4c 4f 47 49 4e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e | e("AUTH.LOGIN\r\n"))).{.return.n |
1a00 | 65 77 20 50 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 | ew.PEAR_Error('write.to.socket.f |
1a20 | 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 76 | ailed');.}.........if.(!$this->v |
1a40 | 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 33 33 34 27 29 29 20 7b 20 72 65 74 75 72 6e | alidateResponse('334')).{.return |
1a60 | 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 41 55 54 48 20 4c 4f 47 49 4e 20 6e 6f 74 20 | .new.PEAR_Error('AUTH.LOGIN.not. |
1a80 | 72 65 63 6f 67 6e 69 7a 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 | recognized');.}..........if.(PEA |
1aa0 | 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 | R::isError($this->socket->write( |
1ac0 | 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 75 69 64 29 20 2e 20 22 5c 72 5c 6e 22 29 29 29 20 | base64_encode($uid)..."\r\n"))). |
1ae0 | 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 20 74 | {.return.new.PEAR_Error('write.t |
1b00 | 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 | o.socket.failed');.}.........if. |
1b20 | 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 33 33 34 27 29 | (!$this->validateResponse('334') |
1b40 | 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 33 35 34 20 6e | ).{.return.new.PEAR_Error('354.n |
1b60 | 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 | ot.received');.}..........if.(PE |
1b80 | 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 | AR::isError($this->socket->write |
1ba0 | 28 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 70 77 64 29 20 2e 20 22 5c 72 5c 6e 22 29 29 29 | (base64_encode($pwd)..."\r\n"))) |
1bc0 | 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 20 | .{.return.new.PEAR_Error('write. |
1be0 | 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 | to.socket.failed');.}.........if |
1c00 | 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 33 35 27 | .(!$this->validateResponse('235' |
1c20 | 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 33 35 20 | )).{.return.new.PEAR_Error('235. |
1c40 | 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 | not.received');.}..........retur |
1c60 | 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 2a 20 53 65 | n.true;.....}....../**......*.Se |
1c80 | 6e 64 20 74 68 65 20 48 45 4c 4f 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 | nd.the.HELO.command.......*..... |
1ca0 | 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 | .*.@param.string.The.domain.name |
1cc0 | 20 74 6f 20 73 61 79 20 77 65 20 61 72 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 | .to.say.we.are.......*......*.@r |
1ce0 | 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 72 | eturn.mixed.Returns.a.PEAR_Error |
1d00 | 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 20 | .with.an.error.message.on.any... |
1d20 | 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 75 | ...*...............kind.of.failu |
1d40 | 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 40 | re,.or.true.on.success.......*.@ |
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 66 75 6e 63 74 69 | access.public......*/.....functi |
1d80 | 6f 6e 20 68 65 6c 6f 28 24 64 6f 6d 61 69 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 | on.helo($domain).{.........if.(P |
1da0 | 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 | EAR::isError($this->socket->writ |
1dc0 | 65 28 22 48 45 4c 4f 20 24 64 6f 6d 61 69 6e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e | e("HELO.$domain\r\n"))).{.return |
1de0 | 20 6e 65 77 20 50 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 | .new.PEAR_Error('write.to.socket |
1e00 | 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 | .failed');.}.........if.(!($this |
1e20 | 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 | ->validateResponse('250'))).{.re |
1e40 | 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 | turn.new.PEAR_Error('250.OK.not. |
1e60 | 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 | received');.}..........return.tr |
1e80 | 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 74 | ue;.....}....../**......*.Send.t |
1ea0 | 68 65 20 4d 41 49 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 | he.MAIL.FROM:.command.......*... |
1ec0 | 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 54 68 65 20 73 65 6e 64 65 72 20 28 72 | ...*.@param.string.The.sender.(r |
1ee0 | 65 76 65 72 73 65 20 70 61 74 68 29 20 74 6f 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 | everse.path).to.set.......*..... |
1f00 | 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_ |
1f20 | 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 |
1f40 | 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. |
1f60 | 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..... |
1f80 | 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 66 | ..*.@access.public......*/.....f |
1fa0 | 75 6e 63 74 69 6f 6e 20 6d 61 69 6c 46 72 6f 6d 28 24 72 65 76 65 72 73 65 5f 70 61 74 68 29 20 | unction.mailFrom($reverse_path). |
1fc0 | 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 74 68 69 | {.........if.(PEAR::isError($thi |
1fe0 | 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 4d 41 49 4c 20 46 52 4f 4d 3a 3c 24 72 65 | s->socket->write("MAIL.FROM:<$re |
2000 | 76 65 72 73 65 5f 70 61 74 68 3e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 | verse_path>\r\n"))).{.return.new |
2020 | 20 50 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 | .PEAR_Error('write.to.socket.fai |
2040 | 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 | led');.}.........if.(!($this->va |
2060 | 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e | lidateResponse('250'))).{.return |
2080 | 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 | .new.PEAR_Error('250.OK.not.rece |
20a0 | 69 76 65 64 27 29 3b 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 | ived');.}..........return.true;. |
20c0 | 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 20 52 | ....}....../**......*.Send.the.R |
20e0 | 43 50 54 20 54 4f 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 | CPT.TO:.command.......*......*.@ |
2100 | 70 61 72 61 6d 20 73 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 | param.string.The.recipient.(forw |
2120 | 61 72 64 20 70 61 74 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 | ard.path).to.add.......*......*. |
2140 | 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 |
2160 | 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. |
2180 | 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 |
21a0 | 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.......* |
21c0 | 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 66 75 6e 63 | .@access.public......*/.....func |
21e0 | 74 69 6f 6e 20 72 63 70 74 54 6f 28 24 66 6f 72 77 61 72 64 5f 70 61 74 68 29 20 7b 0a 20 20 20 | tion.rcptTo($forward_path).{.... |
2200 | 20 20 20 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 | ...../*.Note:.251.is.also.a.vali |
2220 | 64 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 2a 2f 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 | d.response.code.*/..........if.( |
2240 | 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 | PEAR::isError($this->socket->wri |
2260 | 74 65 28 22 52 43 50 54 20 54 4f 3a 20 3c 24 66 6f 72 77 61 72 64 5f 70 61 74 68 3e 5c 72 5c 6e | te("RCPT.TO:.<$forward_path>\r\n |
2280 | 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 | "))).{.return.new.PEAR_Error('wr |
22a0 | 69 74 65 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 | ite.to.socket.failed');.}....... |
22c0 | 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 | ..if.(!($this->validateResponse( |
22e0 | 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 | '250'))).{.return.new.PEAR_Error |
2300 | 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 | ($this->lastline);.}..........re |
2320 | 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 2a | turn.true;.....}....../**......* |
2340 | 20 53 65 6e 64 20 74 68 65 20 44 41 54 41 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 | .Send.the.DATA.command.......*.. |
2360 | 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 65 73 73 61 67 65 20 | ....*.@param.string.The.message. |
2380 | 62 6f 64 79 20 74 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 | body.to.send.......*......*.@ret |
23a0 | 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 72 20 77 | urn.mixed.Returns.a.PEAR_Error.w |
23c0 | 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 20 20 20 | ith.an.error.message.on.any..... |
23e0 | 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 75 72 65 | .*...............kind.of.failure |
2400 | 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 40 61 63 | ,.or.true.on.success.......*.@ac |
2420 | 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | cess.public......*/.....function |
2440 | 20 64 61 74 61 28 24 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 20 20 24 64 61 74 61 20 3d 20 70 | .data($data).{.........$data.=.p |
2460 | 72 65 67 5f 72 65 70 6c 61 63 65 28 22 2f 28 5b 5e 5c 72 5d 7b 31 7d 29 5c 6e 2f 22 2c 20 22 5c | reg_replace("/([^\r]{1})\n/",."\ |
2480 | 5c 31 5c 72 5c 6e 22 2c 20 24 64 61 74 61 29 3b 0a 20 20 20 20 20 20 20 20 24 64 61 74 61 20 3d | \1\r\n",.$data);.........$data.= |
24a0 | 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 22 2f 5c 6e 5c 6e 2f 22 2c 20 22 5c 6e 5c 72 5c 6e 22 | .preg_replace("/\n\n/",."\n\r\n" |
24c0 | 2c 20 24 64 61 74 61 29 3b 0a 20 20 20 20 20 20 20 20 24 64 61 74 61 20 3d 20 70 72 65 67 5f 72 | ,.$data);.........$data.=.preg_r |
24e0 | 65 70 6c 61 63 65 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 | eplace("/\n\./",."\n..",.$data); |
2500 | 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 74 68 69 | ..........if.(PEAR::isError($thi |
2520 | 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 44 41 54 41 5c 72 5c 6e 22 29 29 29 20 7b | s->socket->write("DATA\r\n"))).{ |
2540 | 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 20 74 6f | .return.new.PEAR_Error('write.to |
2560 | 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 | .socket.failed');.}.........if.( |
2580 | 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 33 35 34 27 29 | !($this->validateResponse('354') |
25a0 | 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 33 35 34 20 | )).{.return.new.PEAR_Error('354. |
25c0 | 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 | not.received');.}.........if.(PE |
25e0 | 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 | AR::isError($this->socket->write |
2600 | 28 24 64 61 74 61 20 2e 20 22 5c 72 5c 6e 2e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e | ($data..."\r\n.\r\n"))).{.return |
2620 | 20 6e 65 77 20 50 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 | .new.PEAR_Error('write.to.socket |
2640 | 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 | .failed');.}.........if.(!($this |
2660 | 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 | ->validateResponse('250'))).{.re |
2680 | 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 | turn.new.PEAR_Error('250.OK.not. |
26a0 | 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 | received');.}..........return.tr |
26c0 | 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 74 | ue;.....}....../**......*.Send.t |
26e0 | 68 65 20 53 45 4e 44 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 | he.SEND.FROM:.command.......*... |
2700 | 20 20 20 2a 20 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 | ...*.@param.string.The.reverse.p |
2720 | 61 74 68 20 74 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 | ath.to.send.......*......*.@retu |
2740 | 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 72 20 77 69 | rn.mixed.Returns.a.PEAR_Error.wi |
2760 | 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 20 20 20 20 | th.an.error.message.on.any...... |
2780 | 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 75 72 65 2c | *...............kind.of.failure, |
27a0 | 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 40 61 63 63 | .or.true.on.success.......*.@acc |
27c0 | 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 | ess.public......*/.....function. |
27e0 | 73 65 6e 64 5f 66 72 6f 6d 28 24 72 65 76 65 72 73 65 5f 70 61 74 68 29 20 7b 0a 20 20 20 20 20 | send_from($reverse_path).{...... |
2800 | 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b | ...if.(PEAR::isError($this->sock |
2820 | 65 74 2d 3e 77 72 69 74 65 28 22 53 45 4e 44 20 46 52 4f 4d 3a 3c 24 72 65 76 65 72 73 65 5f 70 | et->write("SEND.FROM:<$reverse_p |
2840 | 61 74 68 3e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 | ath>\r\n"))).{.return.new.PEAR_E |
2860 | 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 64 27 29 3b 20 | rror('write.to.socket.failed');. |
2880 | 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 | }.........if.(!($this->validateR |
28a0 | 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 | esponse('250'))).{.return.new.PE |
28c0 | 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b | AR_Error('250.OK.not.received'); |
28e0 | 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;.....}.. |
2900 | 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 4d 4c 20 46 52 4f | ..../**......*.Send.the.SOML.FRO |
2920 | 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 61 6d | M:.command.......*......*.@param |
2940 | 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 6f 20 73 65 6e 64 | .string.The.reverse.path.to.send |
2960 | 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 |
2980 | 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 |
29a0 | 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......*.......... |
29c0 | 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 |
29e0 | 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. |
2a00 | 20 20 20 20 20 2a 2f 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 | .....*/.....function.soml_from($ |
2a20 | 72 65 76 65 72 73 65 5f 70 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 | reverse_path).{.........if.(PEAR |
2a40 | 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 | ::isError($this->socket->write(" |
2a60 | 53 4f 4d 4c 20 46 52 4f 4d 3a 3c 24 72 65 76 65 72 73 65 5f 70 61 74 68 3e 5c 72 5c 6e 22 29 29 | SOML.FROM:<$reverse_path>\r\n")) |
2a80 | 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 | ).{.return.new.PEAR_Error('write |
2aa0 | 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 | .to.socket.failed');.}.........i |
2ac0 | 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 | f.(!($this->validateResponse('25 |
2ae0 | 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 | 0'))).{.return.new.PEAR_Error('2 |
2b00 | 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 | 50.OK.not.received');.}......... |
2b20 | 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 0a 20 20 20 | .return.true;.....}....../**.... |
2b40 | 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 61 6e 64 2e | ..*.Send.the.SAML.FROM:.command. |
2b60 | 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 |
2b80 | 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 2a 0a 20 20 | .reverse.path.to.send.......*... |
2ba0 | 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 20 50 45 41 | ...*.@return.mixed.Returns.a.PEA |
2bc0 | 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 65 20 6f 6e | R_Error.with.an.error.message.on |
2be0 | 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 6e 64 20 6f | .any......*...............kind.o |
2c00 | 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 73 2e 0a 20 | f.failure,.or.true.on.success... |
2c20 | 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 2f 0a 20 20 20 | ....*.@access.public......*/.... |
2c40 | 20 66 75 6e 63 74 69 6f 6e 20 73 61 6d 6c 5f 66 72 6f 6d 28 24 72 65 76 65 72 73 65 5f 70 61 74 | .function.saml_from($reverse_pat |
2c60 | 68 29 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 | h).{.........if.(PEAR::isError($ |
2c80 | 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 53 41 4d 4c 20 46 52 4f 4d 3a 3c | this->socket->write("SAML.FROM:< |
2ca0 | 24 72 65 76 65 72 73 65 5f 70 61 74 68 3e 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 | $reverse_path>\r\n"))).{.return. |
2cc0 | 6e 65 77 20 50 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 | new.PEAR_Error('write.to.socket. |
2ce0 | 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d | failed');.}.........if.(!($this- |
2d00 | 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 | >validateResponse('250'))).{.ret |
2d20 | 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 72 | urn.new.PEAR_Error('250.OK.not.r |
2d40 | 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 | eceived');.}..........return.tru |
2d60 | 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 74 68 | e;.....}....../**......*.Send.th |
2d80 | 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 40 72 | e.RSET.command.......*......*.@r |
2da0 | 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 72 | eturn.mixed.Returns.a.PEAR_Error |
2dc0 | 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 20 | .with.an.error.message.on.any... |
2de0 | 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 75 | ...*...............kind.of.failu |
2e00 | 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 40 | re,.or.true.on.success.......*.@ |
2e20 | 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 66 75 6e 63 74 69 | access.public......*/.....functi |
2e40 | 6f 6e 20 72 73 65 74 28 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 | on.rset().{.........if.(PEAR::is |
2e60 | 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 52 53 45 54 | Error($this->socket->write("RSET |
2e80 | 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 | \r\n"))).{.return.new.PEAR_Error |
2ea0 | 28 27 77 72 69 74 65 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 | ('write.to.socket.failed');.}... |
2ec0 | 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f | ......if.(!($this->validateRespo |
2ee0 | 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 | nse('250'))).{.return.new.PEAR_E |
2f00 | 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a | rror('250.OK.not.received');.}.. |
2f20 | 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;.....}...... |
2f40 | 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 6e 64 20 74 68 65 20 56 52 46 59 20 63 6f 6d 6d 61 6e 64 | /**......*.Send.the.VRFY.command |
2f60 | 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 20 54 68 | .......*......*.@param.string.Th |
2f80 | 65 20 73 74 72 69 6e 67 20 74 6f 20 76 65 72 69 66 79 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a | e.string.to.verify......*......* |
2fa0 | 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 |
2fc0 | 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 |
2fe0 | 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 |
3000 | 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....... |
3020 | 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 66 75 6e | *.@access.public......*/.....fun |
3040 | 63 74 69 6f 6e 20 76 72 66 79 28 24 73 74 72 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2a | ction.vrfy($string).{........./* |
3060 | 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 65 73 70 6f | .Note:.251.is.also.a.valid.respo |
3080 | 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 3a 3a 69 73 | nse.code.*/.........if.(PEAR::is |
30a0 | 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 56 52 46 59 | Error($this->socket->write("VRFY |
30c0 | 20 24 73 74 72 69 6e 67 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 | .$string\r\n"))).{.return.new.PE |
30e0 | 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 64 | AR_Error('write.to.socket.failed |
3100 | 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 | ');.}.........if.(!($this->valid |
3120 | 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 | ateResponse('250'))).{.return.ne |
3140 | 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 32 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 69 76 65 | w.PEAR_Error('250.OK.not.receive |
3160 | 64 27 29 3b 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 | d');.}..........return.true;.... |
3180 | 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 4e 4f 4f 50 | .}....../**......*.Send.the.NOOP |
31a0 | 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 20 | .command.......*......*.@return. |
31c0 | 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 20 | mixed.Returns.a.PEAR_Error.with. |
31e0 | 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 20 | an.error.message.on.any......*.. |
3200 | 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 72 | .............kind.of.failure,.or |
3220 | 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 73 | .true.on.success.......*.@access |
3240 | 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 6f | .public......*/.....function.noo |
3260 | 70 28 29 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 | p().{.........if.(PEAR::isError( |
3280 | 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 4e 4f 4f 50 5c 72 5c 6e 22 29 | $this->socket->write("NOOP\r\n") |
32a0 | 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 | )).{.return.new.PEAR_Error('writ |
32c0 | 65 20 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 | e.to.socket.failed');.}......... |
32e0 | 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 27 32 | if.(!($this->validateResponse('2 |
3300 | 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 | 50'))).{.return.new.PEAR_Error(' |
3320 | 32 35 30 20 4f 4b 20 6e 6f 74 20 72 65 63 65 69 76 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 | 250.OK.not.received');.}........ |
3340 | 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 0a 20 20 | ..return.true;.....}....../**... |
3360 | 20 20 20 2a 20 41 74 74 65 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 68 65 20 45 48 4c 4f 20 63 6f | ...*.Attempt.to.send.the.EHLO.co |
3380 | 6d 6d 61 6e 64 20 61 6e 64 20 6f 62 74 61 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 45 53 4d 54 50 | mmand.and.obtain.a.list.of.ESMTP |
33a0 | 0a 20 20 20 20 20 2a 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 61 6e | ......*.extensions.available,.an |
33c0 | 64 20 66 61 69 6c 69 6e 67 20 74 68 61 74 20 6a 75 73 74 20 73 65 6e 64 20 48 45 4c 4f 2e 0a 20 | d.failing.that.just.send.HELO... |
33e0 | 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 72 | ....*......*.@return.mixed.Retur |
3400 | 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 65 | ns.a.PEAR_Error.with.an.error.me |
3420 | 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 20 | ssage.on.any......*............. |
3440 | 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 75 | ..kind.of.failure,.or.true.on.su |
3460 | 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 76 61 74 65 0a 20 20 | ccess.......*.@access.private... |
3480 | 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 65 6e 64 65 | ...*/.....function.identifySende |
34a0 | 72 28 29 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 | r().{.........if.(PEAR::isError( |
34c0 | 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 65 28 22 45 48 4c 4f 20 24 74 68 69 73 | $this->socket->write("EHLO.$this |
34e0 | 2d 3e 6c 6f 63 61 6c 68 6f 73 74 5c 72 5c 6e 22 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 | ->localhost\r\n"))).{.return.new |
3500 | 20 50 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 | .PEAR_Error('write.to.socket.fai |
3520 | 6c 65 64 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 65 78 74 65 6e 73 69 6f 6e 73 20 3d 20 | led');.}..........$extensions.=. |
3540 | 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 | array();.........if.(!($this->va |
3560 | 6c 69 64 61 74 65 41 6e 64 50 61 72 73 65 52 65 73 70 6f 6e 73 65 28 27 32 35 30 27 2c 20 24 65 | lidateAndParseResponse('250',.$e |
3580 | 78 74 65 6e 73 69 6f 6e 73 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 50 | xtensions))).{.............if.(P |
35a0 | 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 77 72 69 74 | EAR::isError($this->socket->writ |
35c0 | 65 28 22 48 45 4c 4f 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 68 6f 73 74 5c 72 5c 6e 22 29 29 29 | e("HELO.$this->localhost\r\n"))) |
35e0 | 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 77 72 69 74 65 20 | .{.return.new.PEAR_Error('write. |
3600 | 74 6f 20 73 6f 63 6b 65 74 20 66 61 69 6c 65 64 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 20 20 | to.socket.failed');.}........... |
3620 | 20 20 69 66 20 28 21 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 | ..if.(!($this->validateResponse( |
3640 | 27 32 35 30 27 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 | '250'))).{.return.new.PEAR_Error |
3660 | 28 27 48 45 4c 4f 20 6e 6f 74 20 61 63 63 65 70 74 65 64 27 2c 20 24 74 68 69 73 2d 3e 63 6f 64 | ('HELO.not.accepted',.$this->cod |
3680 | 65 29 3b 20 7d 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 | e);.}.............return.true;.. |
36a0 | 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 | .......}..........for.($i.=.0;.$ |
36c0 | 69 20 3c 20 63 6f 75 6e 74 28 24 65 78 74 65 6e 73 69 6f 6e 73 29 3b 20 24 69 2b 2b 29 20 7b 0a | i.<.count($extensions);.$i++).{. |
36e0 | 20 20 20 20 20 20 20 20 20 20 20 20 24 76 65 72 62 20 3d 20 73 74 72 74 6f 6b 28 24 65 78 74 65 | ............$verb.=.strtok($exte |
3700 | 6e 73 69 6f 6e 73 5b 24 69 5d 2c 20 27 20 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 | nsions[$i],.'.');.............$a |
3720 | 72 67 75 6d 65 6e 74 73 20 3d 20 73 75 62 73 74 72 28 24 65 78 74 65 6e 73 69 6f 6e 73 5b 24 69 | rguments.=.substr($extensions[$i |
3740 | 5d 2c 20 73 74 72 6c 65 6e 28 24 76 65 72 62 29 20 2b 20 31 2c 20 73 74 72 6c 65 6e 28 24 65 78 | ],.strlen($verb).+.1,.strlen($ex |
3760 | 74 65 6e 73 69 6f 6e 73 5b 24 69 5d 29 20 2d 20 73 74 72 6c 65 6e 28 24 76 65 72 62 29 20 2d 20 | tensions[$i]).-.strlen($verb).-. |
3780 | 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 73 6d 74 70 5b 24 76 65 | 2);.............$this->esmtp[$ve |
37a0 | 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 20 7d 0a 20 20 20 20 | rb].=.$arguments;.........}..... |
37c0 | 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 0a | ....return.true;.....}....../**. |
37e0 | 20 20 20 20 20 2a 20 52 65 61 64 20 61 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 | .....*.Read.a.response.from.the. |
3800 | 73 65 72 76 65 72 20 61 6e 64 20 73 65 65 20 69 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 63 | server.and.see.if.the.response.c |
3820 | 6f 64 65 0a 20 20 20 20 20 2a 20 6d 61 74 63 68 65 73 20 77 68 61 74 20 77 65 20 61 72 65 20 65 | ode......*.matches.what.we.are.e |
3840 | 78 70 65 63 74 69 6e 67 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 | xpecting.......*......*.@param.i |
3860 | 6e 74 20 54 68 65 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 77 65 20 61 72 65 20 65 78 70 65 | nt.The.response.code.we.are.expe |
3880 | 63 74 69 6e 67 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f | cting.......*......*.@return.boo |
38a0 | 6c 65 61 6e 20 54 72 75 65 20 69 66 20 77 65 20 67 65 74 20 77 68 61 74 20 77 65 20 65 78 70 65 | lean.True.if.we.get.what.we.expe |
38c0 | 63 74 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 | ct,.false.otherwise.......*.@acc |
38e0 | 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | ess.private......*/.....function |
3900 | 20 76 61 6c 69 64 61 74 65 52 65 73 70 6f 6e 73 65 28 24 63 6f 64 65 29 20 7b 0a 20 20 20 20 20 | .validateResponse($code).{...... |
3920 | 20 20 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 20 3d 20 24 74 68 69 | ...while.($this->lastline.=.$thi |
3940 | 73 2d 3e 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 | s->socket->readLine()).{........ |
3960 | 20 20 20 20 20 24 72 65 70 6c 79 5f 63 6f 64 65 20 3d 20 73 74 72 74 6f 6b 28 24 74 68 69 73 2d | .....$reply_code.=.strtok($this- |
3980 | 3e 6c 61 73 74 6c 69 6e 65 2c 20 27 20 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | >lastline,.'.');.............if. |
39a0 | 28 21 28 73 74 72 63 6d 70 28 24 63 6f 64 65 2c 20 24 72 65 70 6c 79 5f 63 6f 64 65 29 29 29 20 | (!(strcmp($code,.$reply_code))). |
39c0 | 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 63 6f 64 65 20 3d 20 | {.................$this->code.=. |
39e0 | 24 72 65 70 6c 79 5f 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | $reply_code;.................ret |
3a00 | 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 | urn.true;.............}.else.{.. |
3a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 6c 79 5f 63 6f 64 65 20 3d 20 73 74 72 | ...............$reply_code.=.str |
3a40 | 74 6f 6b 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 2c 20 27 2d 27 29 3b 0a 20 20 20 20 20 | tok($this->lastline,.'-');...... |
3a60 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 24 63 6f 64 65 2c 20 24 72 65 | ...........if.(strcmp($code,.$re |
3a80 | 70 6c 79 5f 63 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ply_code)).{.................... |
3aa0 | 20 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 72 65 70 6c 79 5f 63 6f 64 65 3b 0a 20 20 20 20 | .$this->code.=.$reply_code;..... |
3ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 | ................return.false;... |
3ae0 | 20 20 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 7d 0a 20 20 | ..............}.............}... |
3b00 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 | ......}..........return.false;.. |
3b20 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 61 64 20 61 20 72 65 73 70 | ...}....../**......*.Read.a.resp |
3b40 | 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 73 65 72 76 65 72 20 61 6e 64 20 73 65 65 20 69 66 20 | onse.from.the.server.and.see.if. |
3b60 | 74 68 65 20 72 65 73 70 6f 6e 73 65 20 63 6f 64 65 0a 20 20 20 20 20 2a 20 6d 61 74 63 68 65 73 | the.response.code......*.matches |
3b80 | 20 77 68 61 74 20 77 65 20 61 72 65 20 65 78 70 65 63 74 69 6e 67 2e 20 41 6c 73 6f 20 73 61 76 | .what.we.are.expecting..Also.sav |
3ba0 | 65 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 2a 20 72 65 73 70 6f 6e 73 | e.the.rest.of.the......*.respons |
3bc0 | 65 20 69 6e 20 74 68 65 20 61 72 72 61 79 20 70 61 73 73 65 64 20 62 79 20 72 65 66 65 72 65 6e | e.in.the.array.passed.by.referen |
3be0 | 63 65 20 61 73 20 74 68 65 20 73 65 63 6f 6e 64 0a 20 20 20 20 20 2a 20 61 72 67 75 6d 65 6e 74 | ce.as.the.second......*.argument |
3c00 | 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 54 68 65 20 72 | .......*......*.@param.int.The.r |
3c20 | 65 73 70 6f 6e 73 65 20 63 6f 64 65 20 77 65 20 61 72 65 20 65 78 70 65 63 74 69 6e 67 2e 0a 20 | esponse.code.we.are.expecting... |
3c40 | 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 41 6e 20 61 72 72 61 79 20 74 6f 20 64 | ....*.@param.array.An.array.to.d |
3c60 | 75 6d 70 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 | ump.the.rest.of.the.response.int |
3c80 | 6f 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e | o.......*......*.@return.boolean |
3ca0 | 20 54 72 75 65 20 69 66 20 77 65 20 67 65 74 20 77 68 61 74 20 77 65 20 65 78 70 65 63 74 2c 20 | .True.if.we.get.what.we.expect,. |
3cc0 | 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 | false.otherwise.......*.@access. |
3ce0 | 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c | private......*/.....function.val |
3d00 | 69 64 61 74 65 41 6e 64 50 61 72 73 65 52 65 73 70 6f 6e 73 65 28 24 63 6f 64 65 2c 20 26 24 61 | idateAndParseResponse($code,.&$a |
3d20 | 72 67 75 6d 65 6e 74 73 29 20 7b 0a 20 20 20 20 20 20 20 20 24 61 72 67 75 6d 65 6e 74 73 20 3d | rguments).{.........$arguments.= |
3d40 | 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d | .array();..........while.($this- |
3d60 | 3e 6c 61 73 74 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 73 6f 63 6b 65 74 2d 3e 72 65 61 64 4c | >lastline.=.$this->socket->readL |
3d80 | 69 6e 65 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 6c 79 5f 63 6f 64 65 | ine()).{.............$reply_code |
3da0 | 20 3d 20 73 74 72 74 6f 6b 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 2c 20 27 20 27 29 3b | .=.strtok($this->lastline,.'.'); |
3dc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 28 73 74 72 63 6d 70 28 24 63 6f 64 65 2c | .............if.(!(strcmp($code, |
3de0 | 20 24 72 65 70 6c 79 5f 63 6f 64 65 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .$reply_code))).{............... |
3e00 | 20 20 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6c | ..$arguments[].=.substr($this->l |
3e20 | 61 73 74 6c 69 6e 65 2c 20 73 74 72 6c 65 6e 28 24 63 6f 64 65 29 20 2b 20 31 2c 20 73 74 72 6c | astline,.strlen($code).+.1,.strl |
3e40 | 65 6e 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 29 20 2d 20 73 74 72 6c 65 6e 28 24 63 6f | en($this->lastline).-.strlen($co |
3e60 | 64 65 29 20 2d 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d | de).-.1);.................$this- |
3e80 | 3e 63 6f 64 65 20 3d 20 24 72 65 70 6c 79 5f 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | >code.=.$reply_code;............ |
3ea0 | 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 7d 20 | .....return.true;.............}. |
3ec0 | 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 70 6c 79 5f 63 6f | else.{.................$reply_co |
3ee0 | 64 65 20 3d 20 73 74 72 74 6f 6b 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 2c 20 27 2d 27 | de.=.strtok($this->lastline,.'-' |
3f00 | 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 24 63 | );.................if.(strcmp($c |
3f20 | 6f 64 65 2c 20 24 72 65 70 6c 79 5f 63 6f 64 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | ode,.$reply_code)).{............ |
3f40 | 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 72 65 70 6c 79 5f 63 6f | .........$this->code.=.$reply_co |
3f60 | 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 | de;.....................return.f |
3f80 | 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 | alse;.................}......... |
3fa0 | 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d | ....}.............$arguments[].= |
3fc0 | 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 6e 65 2c 20 73 74 72 6c 65 6e 28 | .substr($this->lastline,.strlen( |
3fe0 | 24 63 6f 64 65 29 20 2b 20 31 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6c 61 73 74 6c 69 | $code).+.1,.strlen($this->lastli |
4000 | 6e 65 29 20 2d 20 73 74 72 6c 65 6e 28 24 63 6f 64 65 29 20 2d 20 31 29 3b 0a 20 20 20 20 20 20 | ne).-.strlen($code).-.1);....... |
4020 | 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d | ..}..........return.false;.....} |
4040 | 0a 0a 7d 0a 3f 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ..}.?>.......................... |
4060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
40a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
40c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
40e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
41a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
41c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
41e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
43e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |