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 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
0080 | 20 20 20 34 33 36 30 20 20 37 36 37 34 37 35 36 34 30 33 20 20 20 36 34 32 32 20 00 00 00 00 00 | ...4360..7674756403...6422...... |
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 4d 61 69 6c 3c 2f 6e 61 6d 65 3e 0a 20 20 3c 73 75 6d 6d | .0">...<name>Mail</name>...<summ |
0260 | 61 72 79 3e 43 6c 61 73 73 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 6d 75 6c 74 69 70 6c 65 | ary>Class.that.provides.multiple |
0280 | 20 69 6e 74 65 72 66 61 63 65 73 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 65 6d 61 69 6c 73 3c 2f | .interfaces.for.sending.emails</ |
02a0 | 73 75 6d 6d 61 72 79 3e 0a 20 20 3c 64 65 73 63 72 69 70 74 69 6f 6e 3e 54 68 65 20 50 45 41 52 | summary>...<description>The.PEAR |
02c0 | 27 73 20 4d 61 69 6c 3a 3a 20 69 6e 74 65 72 66 61 63 65 2c 20 64 65 66 69 6e 65 73 20 74 68 65 | 's.Mail::.interface,.defines.the |
02e0 | 20 69 6e 74 65 72 66 61 63 65 20 66 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 3c 2f 64 65 73 | .interface.for.implementing</des |
0300 | 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 20 20 3c 6d | cription>...<maintainers>.....<m |
0320 | 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 6e 62 75 3c | aintainer>.......<user>chagenbu< |
0340 | 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 65 6e 62 75 | /user>.......<name>Chuck.Hagenbu |
0360 | 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 40 68 6f 72 | ch</name>.......<email>chuck@hor |
0380 | 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 65 61 64 3c | de.org</email>.......<role>lead< |
03a0 | 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 20 3c 6d 61 | /role>.....</maintainer>.....<ma |
03c0 | 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 73 65 72 3e 72 69 63 68 61 72 64 3c 2f 75 | intainer>.......<user>richard</u |
03e0 | 73 65 72 3e 0a 20 20 20 20 20 20 3c 6e 61 6d 65 3e 52 69 63 68 61 72 64 20 48 65 79 65 73 3c 2f | ser>.......<name>Richard.Heyes</ |
0400 | 6e 61 6d 65 3e 0a 20 20 20 20 20 20 3c 65 6d 61 69 6c 3e 72 69 63 68 61 72 64 40 70 68 70 67 75 | name>.......<email>richard@phpgu |
0420 | 72 75 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 64 65 76 65 6c | ru.org</email>.......<role>devel |
0440 | 6f 70 65 72 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 | oper</role>.....</maintainer>... |
0460 | 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 6a 6f 6e 3c 2f | ..<maintainer>.......<user>jon</ |
0480 | 75 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 | user>.......<name>Jon.Parise</na |
04a0 | 6d 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 | me>.......<email>jon@php.net</em |
04c0 | 61 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f 6c 65 3e 64 65 76 65 6c 6f 70 65 72 3c 2f 72 6f 6c 65 | ail>.......<role>developer</role |
04e0 | 3e 0a 20 20 20 20 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 | >.....</maintainer>...</maintain |
0500 | 65 72 73 3e 0a 20 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 | ers>...<release>.....<version>1. |
0520 | 31 2e 30 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c 64 61 74 65 3e 32 30 30 33 2d 30 36 2d | 1.0</version>.....<date>2003-06- |
0540 | 32 31 3c 2f 64 61 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 6e 73 65 3e 50 48 50 2f 42 53 44 3c 2f | 21</date>.....<license>PHP/BSD</ |
0560 | 6c 69 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 | license>.....<state>stable</stat |
0580 | 65 3e 0a 20 20 20 20 3c 6e 6f 74 65 73 3e 54 68 65 20 4d 61 69 6c 20 70 61 63 6b 61 67 65 20 6e | e>.....<notes>The.Mail.package.n |
05a0 | 6f 77 20 64 65 70 65 6e 64 73 20 6f 6e 20 4e 65 74 5f 53 4d 54 50 20 31 2e 31 2e 30 20 6f 72 20 | ow.depends.on.Net_SMTP.1.1.0.or. |
05c0 | 67 72 65 61 74 65 72 20 66 6f 72 20 69 74 73 20 53 4d 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 | greater.for.its.SMTP.authenticat |
05e0 | 69 6f 6e 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 64 | ion.capabilities.</notes>.....<d |
0600 | 65 70 73 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 | eps>.......<dep.type="pkg".rel=" |
0620 | 67 65 22 20 76 65 72 73 69 6f 6e 3d 22 31 2e 31 2e 30 22 3e 4e 65 74 5f 53 4d 54 50 3c 2f 64 65 | ge".version="1.1.0">Net_SMTP</de |
0640 | 70 3e 0a 20 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 | p>.....</deps>.....<filelist>... |
0660 | 20 20 20 20 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 36 35 36 | ....<file.role="php".md5sum="656 |
0680 | 35 39 65 65 30 64 66 38 63 61 32 34 38 62 61 33 37 61 35 62 63 38 32 35 32 33 30 35 35 22 20 6e | 59ee0df8ca248ba37a5bc82523055".n |
06a0 | 61 6d 65 3d 22 4d 61 69 6c 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c | ame="Mail.php"/>.......<file.rol |
06c0 | 65 3d 22 70 68 70 22 20 6d 64 35 73 75 6d 3d 22 61 38 37 65 39 65 63 32 61 64 32 61 32 35 62 66 | e="php".md5sum="a87e9ec2ad2a25bf |
06e0 | 32 65 35 63 34 33 31 36 31 66 66 61 33 65 65 31 22 20 6e 61 6d 65 3d 22 4d 61 69 6c 2f 6d 61 69 | 2e5c43161ffa3ee1".name="Mail/mai |
0700 | 6c 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 | l.php"/>.......<file.role="php". |
0720 | 6d 64 35 73 75 6d 3d 22 36 30 39 32 66 37 61 63 61 62 38 37 63 61 37 39 31 30 63 61 63 37 61 65 | md5sum="6092f7acab87ca7910cac7ae |
0740 | 37 39 39 66 39 32 30 38 22 20 6e 61 6d 65 3d 22 4d 61 69 6c 2f 73 65 6e 64 6d 61 69 6c 2e 70 68 | 799f9208".name="Mail/sendmail.ph |
0760 | 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 6d 64 35 73 | p"/>.......<file.role="php".md5s |
0780 | 75 6d 3d 22 36 30 31 65 33 66 33 33 33 39 36 35 31 32 63 66 38 36 61 39 35 39 34 39 36 36 35 65 | um="601e3f33396512cf86a95949665e |
07a0 | 64 30 30 38 22 20 6e 61 6d 65 3d 22 4d 61 69 6c 2f 73 6d 74 70 2e 70 68 70 22 2f 3e 0a 20 20 20 | d008".name="Mail/smtp.php"/>.... |
07c0 | 20 20 20 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 61 31 65 30 | ...<file.role="php".md5sum="a1e0 |
07e0 | 36 61 63 33 63 65 38 33 38 63 62 38 31 65 64 35 30 39 37 39 32 64 34 38 37 38 37 35 22 20 6e 61 | 6ac3ce838cb81ed509792d487875".na |
0800 | 6d 65 3d 22 4d 61 69 6c 2f 52 46 43 38 32 32 2e 70 68 70 22 2f 3e 0a 20 20 20 20 3c 2f 66 69 6c | me="Mail/RFC822.php"/>.....</fil |
0820 | 65 6c 69 73 74 3e 0a 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 3c 63 68 61 6e 67 65 6c 6f 67 | elist>...</release>...<changelog |
0840 | 3e 0a 20 20 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 | >.....<release>.......<version>1 |
0860 | 2e 30 2e 32 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 32 2d | .0.2</version>.......<date>2002- |
0880 | 30 37 2d 32 37 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 | 07-27</date>.......<state>stable |
08a0 | 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 4d 69 6e 6f 72 20 61 64 64 69 | </state>.......<notes>Minor.addi |
08c0 | 74 69 6f 6e 73 20 61 6e 64 20 63 68 61 6e 67 65 73 20 74 6f 20 52 46 43 38 32 32 2e 70 68 70 2e | tions.and.changes.to.RFC822.php. |
08e0 | 20 46 69 78 65 64 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 69 73 73 75 65 20 66 6f 72 | .Fixed.line.terminator.issue.for |
0900 | 20 73 6d 74 70 2e 70 68 70 20 61 6e 64 20 73 65 74 20 73 6d 74 70 2e 70 68 70 20 74 6f 20 75 73 | .smtp.php.and.set.smtp.php.to.us |
0920 | 65 20 52 65 74 75 72 6e 2d 50 61 74 68 20 68 65 61 64 65 72 20 69 6e 20 70 6c 61 63 65 20 6f 66 | e.Return-Path.header.in.place.of |
0940 | 20 46 72 6f 6d 20 68 65 61 64 65 72 20 66 6f 72 20 4d 41 49 4c 20 46 52 4f 4d 3a 20 28 69 66 20 | .From.header.for.MAIL.FROM:.(if. |
0960 | 73 75 70 70 6c 69 65 64 29 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 | supplied).</notes>.....</release |
0980 | 3e 0a 20 20 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 | >.....<release>.......<version>1 |
09a0 | 2e 30 2e 31 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 32 2d | .0.1</version>.......<date>2002- |
09c0 | 30 37 2d 32 37 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 | 07-27</date>.......<state>stable |
09e0 | 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 4c 69 63 65 6e 73 65 20 63 68 | </state>.......<notes>License.ch |
0a00 | 61 6e 67 65 20 66 6f 72 20 52 46 43 38 32 32 2e 70 68 70 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 | ange.for.RFC822.php.</notes>.... |
0a20 | 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 0a 20 20 20 20 20 20 | .</release>.....<release>....... |
0a40 | 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 20 20 3c 64 61 | <version>1.0</version>.......<da |
0a60 | 74 65 3e 32 30 30 32 2d 30 36 2d 30 36 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 | te>2002-06-06</date>.......<stat |
0a80 | 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 73 3e 49 6e | e>stable</state>.......<notes>In |
0aa0 | 69 74 69 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 0a 3c 2f | itial.release.as.PEAR.package.</ |
0ac0 | 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 3c 2f 63 68 61 6e 67 65 | notes>.....</release>...</change |
0ae0 | 6c 6f 67 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | log>.</package>................. |
0b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c00 | 4d 61 69 6c 2d 31 2e 31 2e 30 2f 4d 61 69 6c 2e 70 68 70 00 00 00 00 00 00 00 00 00 00 00 00 00 | Mail-1.1.0/Mail.php............. |
0c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c60 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
0c80 | 20 20 31 36 32 32 36 20 20 37 36 37 34 37 35 35 34 36 33 20 20 20 37 32 34 36 20 00 00 00 00 00 | ..16226..7674755463...7246...... |
0ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e00 | 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.//.//.+------------------- |
0e20 | 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 | -------------------------------- |
0e40 | 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 |
0e60 | 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......................... |
0e80 | 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 | ...............................| |
0ea0 | 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 | .//.+--------------------------- |
0ec0 | 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 | -------------------------------- |
0ee0 | 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). |
0f00 | 31 39 39 37 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 | 1997-2003.The.PHP.Group......... |
0f20 | 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 | .......................|.//.+--- |
0f40 | 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 | -------------------------------- |
0f60 | 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 | -------------------------------- |
0f80 | 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 |
0fa0 | 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 |
0fc0 | 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 |
0fe0 | 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 |
1000 | 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........|.//. |
1020 | 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 |
1040 | 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.................... |
1060 | 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 |
1080 | 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............... |
10a0 | 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 |
10c0 | 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 |
10e0 | 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...| |
1100 | 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 |
1120 | 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 |
1140 | 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 |
1160 | 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 |
1180 | 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................|.//.+--- |
11a0 | 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 | -------------------------------- |
11c0 | 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 | -------------------------------- |
11e0 | 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 |
1200 | 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>............. |
1220 | 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 | ...............|.//.+----------- |
1240 | 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 | -------------------------------- |
1260 | 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 2f 2f 0a | ---------------------------+.//. |
1280 | 2f 2f 20 24 49 64 3a 20 4d 61 69 6c 2e 70 68 70 2c 76 20 31 2e 35 20 32 30 30 33 2f 30 36 2f 32 | //.$Id:.Mail.php,v.1.5.2003/06/2 |
12a0 | 30 20 30 35 3a 30 38 3a 30 33 20 6a 6f 6e 20 45 78 70 20 24 0a 0a 72 65 71 75 69 72 65 5f 6f 6e | 0.05:08:03.jon.Exp.$..require_on |
12c0 | 63 65 20 27 50 45 41 52 2e 70 68 70 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 50 45 41 52 27 73 20 4d 61 | ce.'PEAR.php';../**..*.PEAR's.Ma |
12e0 | 69 6c 3a 3a 20 69 6e 74 65 72 66 61 63 65 2e 20 44 65 66 69 6e 65 73 20 74 68 65 20 69 6e 74 65 | il::.interface..Defines.the.inte |
1300 | 72 66 61 63 65 20 66 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 0a 20 2a 20 6d 61 69 6c 65 72 | rface.for.implementing..*.mailer |
1320 | 73 20 75 6e 64 65 72 20 74 68 65 20 50 45 41 52 20 68 69 65 72 61 72 63 68 79 2c 20 61 6e 64 20 | s.under.the.PEAR.hierarchy,.and. |
1340 | 70 72 6f 76 69 64 65 73 20 73 75 70 70 6f 72 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0a 20 2a | provides.supporting.functions..* |
1360 | 20 75 73 65 66 75 6c 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20 6d 61 69 6c 65 72 20 62 61 63 6b 65 | .useful.in.multiple.mailer.backe |
1380 | 6e 64 73 2e 0a 20 2a 0a 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 2a 20 40 76 65 | nds...*..*.@access.public..*.@ve |
13a0 | 72 73 69 6f 6e 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 35 20 24 0a 20 2a 20 40 70 61 63 6b 61 | rsion.$Revision:.1.5.$..*.@packa |
13c0 | 67 65 20 4d 61 69 6c 0a 20 2a 2f 0a 63 6c 61 73 73 20 4d 61 69 6c 0a 7b 0a 20 20 20 20 2f 2a 2a | ge.Mail..*/.class.Mail.{...../** |
13e0 | 0a 20 20 20 20 20 2a 20 4c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 75 73 65 64 20 66 6f 72 | ......*.Line.terminator.used.for |
1400 | 20 73 65 70 61 72 61 74 69 6e 67 20 68 65 61 64 65 72 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 2a | .separating.header.lines.......* |
1420 | 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 72 20 24 73 65 | .@var.string......*/.....var.$se |
1440 | 70 20 3d 20 22 5c 72 5c 6e 22 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 50 72 6f 76 | p.=."\r\n";....../**......*.Prov |
1460 | 69 64 65 73 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 66 6f 72 20 67 65 6e 65 72 61 74 69 6e 67 | ides.an.interface.for.generating |
1480 | 20 4d 61 69 6c 3a 3a 20 6f 62 6a 65 63 74 73 20 6f 66 20 76 61 72 69 6f 75 73 0a 20 20 20 20 20 | .Mail::.objects.of.various...... |
14a0 | 2a 20 74 79 70 65 73 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 | *.types......*......*.@param.str |
14c0 | 69 6e 67 20 24 64 72 69 76 65 72 20 54 68 65 20 6b 69 6e 64 20 6f 66 20 4d 61 69 6c 3a 3a 20 6f | ing.$driver.The.kind.of.Mail::.o |
14e0 | 62 6a 65 63 74 20 74 6f 20 69 6e 73 74 61 6e 74 69 61 74 65 2e 0a 20 20 20 20 20 2a 20 40 70 61 | bject.to.instantiate.......*.@pa |
1500 | 72 61 6d 20 61 72 72 61 79 20 20 24 70 61 72 61 6d 73 20 54 68 65 20 70 61 72 61 6d 65 74 65 72 | ram.array..$params.The.parameter |
1520 | 73 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 4d 61 69 6c 3a 3a 20 6f 62 6a 65 63 74 2e 0a | s.to.pass.to.the.Mail::.object.. |
1540 | 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6f 62 6a 65 63 74 20 4d 61 69 6c 20 61 20 69 6e 73 | .....*.@return.object.Mail.a.ins |
1560 | 74 61 6e 63 65 20 6f 66 20 74 68 65 20 64 72 69 76 65 72 20 63 6c 61 73 73 20 6f 72 20 69 66 20 | tance.of.the.driver.class.or.if. |
1580 | 66 61 69 6c 73 20 61 20 50 45 41 52 20 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 | fails.a.PEAR.Error......*.@acces |
15a0 | 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 66 61 | s.public......*/.....function.fa |
15c0 | 63 74 6f 72 79 28 24 64 72 69 76 65 72 2c 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 | ctory($driver,.$params.=.array() |
15e0 | 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 64 72 69 76 65 72 20 3d 20 73 74 72 74 6f 6c | ).....{.........$driver.=.strtol |
1600 | 6f 77 65 72 28 24 64 72 69 76 65 72 29 3b 0a 20 20 20 20 20 20 20 20 40 69 6e 63 6c 75 64 65 5f | ower($driver);.........@include_ |
1620 | 6f 6e 63 65 20 27 4d 61 69 6c 2f 27 20 2e 20 24 64 72 69 76 65 72 20 2e 20 27 2e 70 68 70 27 3b | once.'Mail/'...$driver...'.php'; |
1640 | 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 20 3d 20 27 4d 61 69 6c 5f 27 20 2e 20 24 64 72 69 | .........$class.=.'Mail_'...$dri |
1660 | 76 65 72 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 | ver;.........if.(class_exists($c |
1680 | 6c 61 73 73 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 | lass)).{.............return.new. |
16a0 | 24 63 6c 61 73 73 28 24 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 | $class($params);.........}.else. |
16c0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 50 45 41 52 3a 3a 72 61 69 73 65 | {.............return.PEAR::raise |
16e0 | 45 72 72 6f 72 28 27 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 63 6c 61 73 73 20 66 6f 72 20 | Error('Unable.to.find.class.for. |
1700 | 64 72 69 76 65 72 20 27 20 2e 20 24 64 72 69 76 65 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 | driver.'...$driver);.........}.. |
1720 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 73 20 | ...}....../**......*.Implements. |
1740 | 4d 61 69 6c 3a 3a 73 65 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73 69 6e 67 20 70 68 70 27 | Mail::send().function.using.php' |
1760 | 73 20 62 75 69 6c 74 2d 69 6e 20 6d 61 69 6c 28 29 0a 20 20 20 20 20 2a 20 63 6f 6d 6d 61 6e 64 | s.built-in.mail()......*.command |
1780 | 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 72 65 | .......*......*.@param.mixed.$re |
17a0 | 63 69 70 69 65 6e 74 73 20 45 69 74 68 65 72 20 61 20 63 6f 6d 6d 61 2d 73 65 70 65 72 61 74 65 | cipients.Either.a.comma-seperate |
17c0 | 64 20 6c 69 73 74 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 0a 20 20 20 20 20 2a 20 20 20 20 20 | d.list.of.recipients......*..... |
17e0 | 20 20 20 20 20 20 20 20 20 28 52 46 43 38 32 32 20 63 6f 6d 70 6c 69 61 6e 74 29 2c 20 6f 72 20 | .........(RFC822.compliant),.or. |
1800 | 61 6e 20 61 72 72 61 79 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 2c 0a 20 20 20 20 20 2a 20 20 | an.array.of.recipients,......*.. |
1820 | 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68 20 52 46 43 38 32 32 20 76 61 6c 69 64 2e 20 54 | ............each.RFC822.valid..T |
1840 | 68 69 73 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 72 65 63 69 70 69 65 6e 74 73 20 6e 6f 74 0a 20 | his.may.contain.recipients.not.. |
1860 | 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 | ....*..............specified.in. |
1880 | 74 68 65 20 68 65 61 64 65 72 73 2c 20 66 6f 72 20 42 63 63 3a 2c 20 72 65 73 65 6e 64 69 6e 67 | the.headers,.for.Bcc:,.resending |
18a0 | 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 73 2c 20 65 | ......*..............messages,.e |
18c0 | 74 63 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 | tc.......*......*.@param.array.$ |
18e0 | 68 65 61 64 65 72 73 20 54 68 65 20 61 72 72 61 79 20 6f 66 20 68 65 61 64 65 72 73 20 74 6f 20 | headers.The.array.of.headers.to. |
1900 | 73 65 6e 64 20 77 69 74 68 20 74 68 65 20 6d 61 69 6c 2c 20 69 6e 20 61 6e 0a 20 20 20 20 20 2a | send.with.the.mail,.in.an......* |
1920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 2c | ..............associative.array, |
1940 | 20 77 68 65 72 65 20 74 68 65 20 61 72 72 61 79 20 6b 65 79 20 69 73 20 74 68 65 0a 20 20 20 20 | .where.the.array.key.is.the..... |
1960 | 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 20 6e 61 6d 65 20 28 69 65 2c | .*..............header.name.(ie, |
1980 | 20 27 53 75 62 6a 65 63 74 27 29 2c 20 61 6e 64 20 74 68 65 20 61 72 72 61 79 20 76 61 6c 75 65 | .'Subject'),.and.the.array.value |
19a0 | 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 74 68 65 20 68 65 61 64 | ......*..............is.the.head |
19c0 | 65 72 20 76 61 6c 75 65 20 28 69 65 2c 20 27 74 65 73 74 27 29 2e 20 54 68 65 20 68 65 61 64 65 | er.value.(ie,.'test')..The.heade |
19e0 | 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 64 75 63 65 64 20 66 | r......*..............produced.f |
1a00 | 72 6f 6d 20 74 68 6f 73 65 20 76 61 6c 75 65 73 20 77 6f 75 6c 64 20 62 65 20 27 53 75 62 6a 65 | rom.those.values.would.be.'Subje |
1a20 | 63 74 3a 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 27 2e 0a 20 | ct:......*..............test'... |
1a40 | 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 24 62 6f 64 79 | ....*......*.@param.string.$body |
1a60 | 20 54 68 65 20 66 75 6c 6c 20 74 65 78 74 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 6f | .The.full.text.of.the.message.bo |
1a80 | 64 79 2c 20 69 6e 63 6c 75 64 69 6e 67 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 | dy,.including.any......*........ |
1aa0 | 20 20 20 20 20 20 20 4d 69 6d 65 20 70 61 72 74 73 2c 20 65 74 63 2e 0a 20 20 20 20 20 2a 0a 20 | .......Mime.parts,.etc.......*.. |
1ac0 | 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 74 72 75 65 | ....*.@return.mixed.Returns.true |
1ae0 | 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 6f 72 20 61 20 50 45 41 52 5f 45 72 72 6f 72 0a 20 20 20 | .on.success,.or.a.PEAR_Error.... |
1b00 | 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 64 | ..*...............containing.a.d |
1b20 | 65 73 63 72 69 70 74 69 76 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 0a 20 20 20 20 | escriptive.error.message.on..... |
1b40 | 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a | .*...............failure.......* |
1b60 | 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 64 65 70 72 65 63 61 74 | .@access.public......*.@deprecat |
1b80 | 65 64 20 75 73 65 20 4d 61 69 6c 5f 6d 61 69 6c 3a 3a 73 65 6e 64 20 69 6e 73 74 65 61 64 0a 20 | ed.use.Mail_mail::send.instead.. |
1ba0 | 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 28 24 72 65 63 69 70 69 | ....*/.....function.send($recipi |
1bc0 | 65 6e 74 73 2c 20 24 68 65 61 64 65 72 73 2c 20 24 62 6f 64 79 29 0a 20 20 20 20 7b 0a 20 20 20 | ents,.$headers,.$body).....{.... |
1be0 | 20 20 20 20 20 2f 2f 20 69 66 20 77 65 27 72 65 20 70 61 73 73 65 64 20 61 6e 20 61 72 72 61 79 | .....//.if.we're.passed.an.array |
1c00 | 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 2c 20 69 6d 70 6c 6f 64 65 20 69 74 2e 0a 20 20 20 20 | .of.recipients,.implode.it...... |
1c20 | 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 65 63 69 70 69 65 6e 74 73 29 29 20 7b | ....if.(is_array($recipients)).{ |
1c40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 20 3d 20 69 6d 70 6c 6f | .............$recipients.=.implo |
1c60 | 64 65 28 27 2c 20 27 2c 20 24 72 65 63 69 70 69 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 20 7d | de(',.',.$recipients);.........} |
1c80 | 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 67 65 74 20 74 68 65 20 53 75 62 6a 65 63 74 20 6f 75 74 | ..........//.get.the.Subject.out |
1ca0 | 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 73 20 61 72 72 61 79 20 73 6f 20 74 68 61 74 20 77 65 | .of.the.headers.array.so.that.we |
1cc0 | 20 63 61 6e 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 61 73 73 20 69 74 20 61 73 20 61 20 73 65 70 | .can.........//.pass.it.as.a.sep |
1ce0 | 65 72 61 74 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 6d 61 69 6c 28 29 2e 0a 20 20 20 20 20 20 | erate.argument.to.mail()........ |
1d00 | 20 20 24 73 75 62 6a 65 63 74 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 | ..$subject.=.'';.........if.(iss |
1d20 | 65 74 28 24 68 65 61 64 65 72 73 5b 27 53 75 62 6a 65 63 74 27 5d 29 29 20 7b 0a 20 20 20 20 20 | et($headers['Subject'])).{...... |
1d40 | 20 20 20 20 20 20 20 24 73 75 62 6a 65 63 74 20 3d 20 24 68 65 61 64 65 72 73 5b 27 53 75 62 6a | .......$subject.=.$headers['Subj |
1d60 | 65 63 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 68 65 61 64 65 72 | ect'];.............unset($header |
1d80 | 73 5b 27 53 75 62 6a 65 63 74 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 | s['Subject']);.........}........ |
1da0 | 20 20 2f 2f 20 66 6c 61 74 74 65 6e 20 74 68 65 20 68 65 61 64 65 72 73 20 6f 75 74 2e 0a 20 20 | ..//.flatten.the.headers.out.... |
1dc0 | 20 20 20 20 20 20 6c 69 73 74 28 2c 24 74 65 78 74 5f 68 65 61 64 65 72 73 29 20 3d 20 4d 61 69 | ......list(,$text_headers).=.Mai |
1de0 | 6c 3a 3a 70 72 65 70 61 72 65 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 3b 0a 0a 20 20 | l::prepareHeaders($headers);.... |
1e00 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6c 28 24 72 65 63 69 70 69 65 6e 74 73 2c 20 24 | ......return.mail($recipients,.$ |
1e20 | 73 75 62 6a 65 63 74 2c 20 24 62 6f 64 79 2c 20 24 74 65 78 74 5f 68 65 61 64 65 72 73 29 3b 0a | subject,.$body,.$text_headers);. |
1e40 | 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 61 6b 65 20 61 6e 20 61 | .....}....../**......*.Take.an.a |
1e60 | 72 72 61 79 20 6f 66 20 6d 61 69 6c 20 68 65 61 64 65 72 73 20 61 6e 64 20 72 65 74 75 72 6e 20 | rray.of.mail.headers.and.return. |
1e80 | 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 20 20 20 20 20 2a 20 74 65 78 74 20 | a.string.containing......*.text. |
1ea0 | 75 73 61 62 6c 65 20 69 6e 20 73 65 6e 64 69 6e 67 20 61 20 6d 65 73 73 61 67 65 2e 0a 20 20 20 | usable.in.sending.a.message..... |
1ec0 | 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 68 65 61 64 65 72 73 | ..*......*.@param.array.$headers |
1ee0 | 20 54 68 65 20 61 72 72 61 79 20 6f 66 20 68 65 61 64 65 72 73 20 74 6f 20 70 72 65 70 61 72 65 | .The.array.of.headers.to.prepare |
1f00 | 2c 20 69 6e 20 61 6e 20 61 73 73 6f 63 69 61 74 69 76 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | ,.in.an.associative......*...... |
1f20 | 20 20 20 20 20 20 20 20 61 72 72 61 79 2c 20 77 68 65 72 65 20 74 68 65 20 61 72 72 61 79 20 6b | ........array,.where.the.array.k |
1f40 | 65 79 20 69 73 20 74 68 65 20 68 65 61 64 65 72 20 6e 61 6d 65 20 28 69 65 2c 0a 20 20 20 20 20 | ey.is.the.header.name.(ie,...... |
1f60 | 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 53 75 62 6a 65 63 74 27 29 2c 20 61 6e 64 20 74 | *..............'Subject'),.and.t |
1f80 | 68 65 20 61 72 72 61 79 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 68 65 61 64 65 72 0a 20 20 20 | he.array.value.is.the.header.... |
1fa0 | 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 28 69 65 2c 20 27 74 65 73 | ..*..............value.(ie,.'tes |
1fc0 | 74 27 29 2e 20 54 68 65 20 68 65 61 64 65 72 20 70 72 6f 64 75 63 65 64 20 66 72 6f 6d 20 74 68 | t')..The.header.produced.from.th |
1fe0 | 6f 73 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 73 20 77 | ose......*..............values.w |
2000 | 6f 75 6c 64 20 62 65 20 27 53 75 62 6a 65 63 74 3a 20 74 65 73 74 27 2e 0a 20 20 20 20 20 2a 0a | ould.be.'Subject:.test'.......*. |
2020 | 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 66 61 6c | .....*.@return.mixed.Returns.fal |
2040 | 73 65 20 69 66 20 69 74 20 65 6e 63 6f 75 6e 74 65 72 73 20 61 20 62 61 64 20 61 64 64 72 65 73 | se.if.it.encounters.a.bad.addres |
2060 | 73 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 | s,......*...............otherwis |
2080 | 65 20 72 65 74 75 72 6e 73 20 61 6e 20 61 72 72 61 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 77 | e.returns.an.array.containing.tw |
20a0 | 6f 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 3a | o......*...............elements: |
20c0 | 20 41 6e 79 20 46 72 6f 6d 3a 20 61 64 64 72 65 73 73 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 | .Any.From:.address.found.in.the. |
20e0 | 68 65 61 64 65 72 73 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e | headers,......*...............an |
2100 | 64 20 74 68 65 20 70 6c 61 69 6e 20 74 65 78 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 | d.the.plain.text.version.of.the. |
2120 | 68 65 61 64 65 72 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 | headers.......*.@access.private. |
2140 | 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 61 72 65 48 65 61 64 | .....*/.....function.prepareHead |
2160 | 65 72 73 28 24 68 65 61 64 65 72 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 6c 69 6e | ers($headers).....{.........$lin |
2180 | 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 66 72 6f 6d 20 3d 20 6e 75 | es.=.array();.........$from.=.nu |
21a0 | 6c 6c 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 | ll;..........foreach.($headers.a |
21c0 | 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s.$key.=>.$value).{............. |
21e0 | 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 46 72 6f 6d 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | if.($key.===.'From').{.......... |
2200 | 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 4d 61 69 6c 2f 52 46 43 38 32 32 | .......include_once.'Mail/RFC822 |
2220 | 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 | .php';..................$address |
2240 | 65 73 20 3d 20 4d 61 69 6c 5f 52 46 43 38 32 32 3a 3a 70 61 72 73 65 41 64 64 72 65 73 73 4c 69 | es.=.Mail_RFC822::parseAddressLi |
2260 | 73 74 28 24 76 61 6c 75 65 2c 20 27 6c 6f 63 61 6c 68 6f 73 74 27 2c 0a 20 20 20 20 20 20 20 20 | st($value,.'localhost',......... |
2280 | 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 | ................................ |
22a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 | ...................false);...... |
22c0 | 20 20 20 20 20 20 20 20 20 20 20 24 66 72 6f 6d 20 3d 20 24 61 64 64 72 65 73 73 65 73 5b 30 5d | ...........$from.=.$addresses[0] |
22e0 | 2d 3e 6d 61 69 6c 62 6f 78 20 2e 20 27 40 27 20 2e 20 24 61 64 64 72 65 73 73 65 73 5b 30 5d 2d | ->mailbox...'@'...$addresses[0]- |
2300 | 3e 68 6f 73 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 6a 65 63 | >host;..................//.Rejec |
2320 | 74 20 65 6e 76 65 6c 6f 70 65 20 46 72 6f 6d 3a 20 61 64 64 72 65 73 73 65 73 20 77 69 74 68 20 | t.envelope.From:.addresses.with. |
2340 | 73 70 61 63 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 73 | spaces..................if.(strs |
2360 | 74 72 28 24 66 72 6f 6d 2c 20 27 20 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tr($from,.'.')).{............... |
2380 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......return.false;............. |
23a0 | 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 69 6e 65 73 5b 5d 20 | ....}..................$lines[]. |
23c0 | 3d 20 24 6b 65 79 20 2e 20 27 3a 20 27 20 2e 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 | =.$key...':.'...$value;......... |
23e0 | 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 52 65 63 65 69 76 65 64 | ....}.elseif.($key.===.'Received |
2400 | 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 75 74 20 52 65 63 65 | ').{.................//.Put.Rece |
2420 | 69 76 65 64 3a 20 68 65 61 64 65 72 73 20 61 74 20 74 68 65 20 74 6f 70 2e 20 20 53 70 61 6d 20 | ived:.headers.at.the.top...Spam. |
2440 | 64 65 74 65 63 74 6f 72 73 20 6f 66 74 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | detectors.often................. |
2460 | 2f 2f 20 66 6c 61 67 20 6d 65 73 73 61 67 65 73 20 77 69 74 68 20 52 65 63 65 69 76 65 64 3a 20 | //.flag.messages.with.Received:. |
2480 | 68 65 61 64 65 72 73 20 61 66 74 65 72 20 74 68 65 20 53 75 62 6a 65 63 74 3a 0a 20 20 20 20 20 | headers.after.the.Subject:...... |
24a0 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 73 20 73 70 61 6d 2e 0a 20 20 20 20 20 20 20 20 20 | ...........//.as.spam........... |
24c0 | 20 20 20 20 20 20 20 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 6c 69 6e 65 73 2c 20 24 6b 65 | .......array_unshift($lines,.$ke |
24e0 | 79 20 2e 20 27 3a 20 27 20 2e 20 24 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | y...':.'...$value);............. |
2500 | 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 69 6e 65 73 5b | }.else.{.................$lines[ |
2520 | 5d 20 3d 20 24 6b 65 79 20 2e 20 27 3a 20 27 20 2e 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 | ].=.$key...':.'...$value;....... |
2540 | 20 20 20 20 20 20 7d 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 | ......}.........}..........retur |
2560 | 6e 20 61 72 72 61 79 28 24 66 72 6f 6d 2c 20 6a 6f 69 6e 28 24 74 68 69 73 2d 3e 73 65 70 2c 20 | n.array($from,.join($this->sep,. |
2580 | 24 6c 69 6e 65 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 2a 20 | $lines));.....}....../**......*. |
25a0 | 54 61 6b 65 20 61 20 73 65 74 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 20 61 6e 64 20 70 61 72 | Take.a.set.of.recipients.and.par |
25c0 | 73 65 20 74 68 65 6d 2c 20 72 65 74 75 72 6e 69 6e 67 20 61 6e 20 61 72 72 61 79 20 6f 66 0a 20 | se.them,.returning.an.array.of.. |
25e0 | 20 20 20 20 2a 20 62 61 72 65 20 61 64 64 72 65 73 73 65 73 20 28 66 6f 72 77 61 72 64 20 70 61 | ....*.bare.addresses.(forward.pa |
2600 | 74 68 73 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 73 65 6e 64 6d | ths).that.can.be.passed.to.sendm |
2620 | 61 69 6c 0a 20 20 20 20 20 2a 20 6f 72 20 61 6e 20 73 6d 74 70 20 73 65 72 76 65 72 20 77 69 74 | ail......*.or.an.smtp.server.wit |
2640 | 68 20 74 68 65 20 72 63 70 74 20 74 6f 3a 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 0a 20 | h.the.rcpt.to:.command.......*.. |
2660 | 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 45 69 74 68 65 72 20 61 20 63 6f 6d 6d | ....*.@param.mixed.Either.a.comm |
2680 | 61 2d 73 65 70 65 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 0a 20 | a-seperated.list.of.recipients.. |
26a0 | 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 52 46 43 38 32 32 20 63 6f 6d 70 6c | ....*..............(RFC822.compl |
26c0 | 69 61 6e 74 29 2c 20 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 | iant),.or.an.array.of.recipients |
26e0 | 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68 20 52 46 43 38 32 | ,......*..............each.RFC82 |
2700 | 32 20 76 61 6c 69 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 61 | 2.valid.......*......*.@return.a |
2720 | 72 72 61 79 20 41 6e 20 61 72 72 61 79 20 6f 66 20 66 6f 72 77 61 72 64 20 70 61 74 68 73 20 28 | rray.An.array.of.forward.paths.( |
2740 | 62 61 72 65 20 61 64 64 72 65 73 73 65 73 29 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 | bare.addresses).......*.@access. |
2760 | 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 70 61 72 | private......*/.....function.par |
2780 | 73 65 52 65 63 69 70 69 65 6e 74 73 28 24 72 65 63 69 70 69 65 6e 74 73 29 0a 20 20 20 20 7b 0a | seRecipients($recipients).....{. |
27a0 | 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 4d 61 69 6c 2f 52 46 43 38 32 | ........include_once.'Mail/RFC82 |
27c0 | 32 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 77 65 27 72 65 20 70 61 73 | 2.php';..........//.if.we're.pas |
27e0 | 73 65 64 20 61 6e 20 61 72 72 61 79 2c 20 61 73 73 75 6d 65 20 61 64 64 72 65 73 73 65 73 20 61 | sed.an.array,.assume.addresses.a |
2800 | 72 65 20 76 61 6c 69 64 20 61 6e 64 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 6d 70 6c 6f 64 65 20 | re.valid.and.........//.implode. |
2820 | 74 68 65 6d 20 62 65 66 6f 72 65 20 70 61 72 73 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 69 66 20 | them.before.parsing..........if. |
2840 | 28 69 73 5f 61 72 72 61 79 28 24 72 65 63 69 70 69 65 6e 74 73 29 29 20 7b 0a 20 20 20 20 20 20 | (is_array($recipients)).{....... |
2860 | 20 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 | ......$recipients.=.implode(',.' |
2880 | 2c 20 24 72 65 63 69 70 69 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | ,.$recipients);.........}....... |
28a0 | 20 20 20 2f 2f 20 50 61 72 73 65 20 72 65 63 69 70 69 65 6e 74 73 2c 20 6c 65 61 76 69 6e 67 20 | ...//.Parse.recipients,.leaving. |
28c0 | 6f 75 74 20 61 6c 6c 20 70 65 72 73 6f 6e 61 6c 20 69 6e 66 6f 2e 20 54 68 69 73 20 69 73 0a 20 | out.all.personal.info..This.is.. |
28e0 | 20 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 73 6d 74 70 20 72 65 63 69 70 69 65 6e 74 73 2c 20 65 | .......//.for.smtp.recipients,.e |
2900 | 74 63 2e 20 41 6c 6c 20 72 65 6c 65 76 61 6e 74 20 70 65 72 73 6f 6e 61 6c 20 69 6e 66 6f 72 6d | tc..All.relevant.personal.inform |
2920 | 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 68 6f 75 6c 64 20 61 6c 72 65 61 64 79 20 | ation.........//.should.already. |
2940 | 62 65 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 73 2e 0a 20 20 20 20 20 20 20 20 24 61 64 64 72 | be.in.the.headers..........$addr |
2960 | 65 73 73 65 73 20 3d 20 4d 61 69 6c 5f 52 46 43 38 32 32 3a 3a 70 61 72 73 65 41 64 64 72 65 73 | esses.=.Mail_RFC822::parseAddres |
2980 | 73 4c 69 73 74 28 24 72 65 63 69 70 69 65 6e 74 73 2c 20 27 6c 6f 63 61 6c 68 6f 73 74 27 2c 20 | sList($recipients,.'localhost',. |
29a0 | 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 20 3d 20 61 72 | false);.........$recipients.=.ar |
29c0 | 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 64 64 | ray();.........if.(is_array($add |
29e0 | 72 65 73 73 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 | resses)).{.............foreach.( |
2a00 | 24 61 64 64 72 65 73 73 65 73 20 61 73 20 24 6f 62 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | $addresses.as.$ob).{............ |
2a20 | 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 5b 5d 20 3d 20 24 6f 62 2d 3e 6d 61 69 6c 62 6f | .....$recipients[].=.$ob->mailbo |
2a40 | 78 20 2e 20 27 40 27 20 2e 20 24 6f 62 2d 3e 68 6f 73 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | x...'@'...$ob->host;............ |
2a60 | 20 7d 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 24 72 65 | .}.........}..........return.$re |
2a80 | 63 69 70 69 65 6e 74 73 3b 0a 20 20 20 20 7d 0a 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 | cipients;.....}..}.?>........... |
2aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2c00 | 4d 61 69 6c 2d 31 2e 31 2e 30 2f 4d 61 69 6c 2f 6d 61 69 6c 2e 70 68 70 00 00 00 00 00 00 00 00 | Mail-1.1.0/Mail/mail.php........ |
2c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2c60 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
2c80 | 20 20 31 30 32 33 33 20 20 37 36 37 34 37 35 35 34 36 33 20 20 31 30 31 36 30 20 00 00 00 00 00 | ..10233..7674755463..10160...... |
2ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2e00 | 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.//.//.+------------------- |
2e20 | 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 | -------------------------------- |
2e40 | 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 |
2e60 | 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......................... |
2e80 | 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 | ...............................| |
2ea0 | 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 | .//.+--------------------------- |
2ec0 | 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 | -------------------------------- |
2ee0 | 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). |
2f00 | 31 39 39 37 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 | 1997-2003.The.PHP.Group......... |
2f20 | 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 | .......................|.//.+--- |
2f40 | 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 | -------------------------------- |
2f60 | 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 | -------------------------------- |
2f80 | 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 |
2fa0 | 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 |
2fc0 | 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 |
2fe0 | 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 |
3000 | 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........|.//. |
3020 | 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 |
3040 | 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.................... |
3060 | 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 |
3080 | 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............... |
30a0 | 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 |
30c0 | 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 |
30e0 | 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...| |
3100 | 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 |
3120 | 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 |
3140 | 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 |
3160 | 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 |
3180 | 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................|.//.+--- |
31a0 | 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 | -------------------------------- |
31c0 | 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 | -------------------------------- |
31e0 | 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 |
3200 | 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>............. |
3220 | 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 | ...............|.//.+----------- |
3240 | 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 | -------------------------------- |
3260 | 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 2f 2f 0a | ---------------------------+.//. |
3280 | 2f 2f 20 24 49 64 3a 20 6d 61 69 6c 2e 70 68 70 2c 76 20 31 2e 34 20 32 30 30 33 2f 30 36 2f 32 | //.$Id:.mail.php,v.1.4.2003/06/2 |
32a0 | 30 20 30 35 3a 30 38 3a 30 33 20 6a 6f 6e 20 45 78 70 20 24 0a 0a 72 65 71 75 69 72 65 5f 6f 6e | 0.05:08:03.jon.Exp.$..require_on |
32c0 | 63 65 20 27 4d 61 69 6c 2e 70 68 70 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 69 6e 74 65 72 6e 61 6c 20 | ce.'Mail.php';../**..*.internal. |
32e0 | 50 48 50 2d 6d 61 69 6c 28 29 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 | PHP-mail().implementation.of.the |
3300 | 20 50 45 41 52 20 4d 61 69 6c 3a 3a 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 2a 20 40 61 63 63 65 | .PEAR.Mail::.interface...*.@acce |
3320 | 73 73 20 70 75 62 6c 69 63 0a 20 2a 20 40 70 61 63 6b 61 67 65 20 4d 61 69 6c 0a 20 2a 20 40 76 | ss.public..*.@package.Mail..*.@v |
3340 | 65 72 73 69 6f 6e 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 34 20 24 0a 20 2a 2f 0a 20 0a 63 6c | ersion.$Revision:.1.4.$..*/...cl |
3360 | 61 73 73 20 4d 61 69 6c 5f 6d 61 69 6c 20 65 78 74 65 6e 64 73 20 4d 61 69 6c 0a 7b 0a 20 20 20 | ass.Mail_mail.extends.Mail.{.... |
3380 | 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 6e 79 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 | ./**......*.Any.arguments.to.pas |
33a0 | 73 20 74 6f 20 74 68 65 20 6d 61 69 6c 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a | s.to.the.mail().function.......* |
33c0 | 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 72 20 24 5f 70 | .@var.string......*/.....var.$_p |
33e0 | 61 72 61 6d 73 20 3d 20 27 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 73 | arams.=.'';....../**......*.Cons |
3400 | 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 6e 73 74 61 6e 74 69 61 | tructor.......*......*.Instantia |
3420 | 74 65 73 20 61 20 6e 65 77 20 4d 61 69 6c 5f 6d 61 69 6c 3a 3a 20 6f 62 6a 65 63 74 20 62 61 73 | tes.a.new.Mail_mail::.object.bas |
3440 | 65 64 20 6f 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 2a 20 70 61 73 73 | ed.on.the.parameters......*.pass |
3460 | 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 6d 20 73 74 72 69 | ed.in.......*......*.@param.stri |
3480 | 6e 67 20 24 70 61 72 61 6d 73 20 45 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 74 | ng.$params.Extra.arguments.for.t |
34a0 | 68 65 20 6d 61 69 6c 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | he.mail().function.......*...... |
34c0 | 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 |
34e0 | 63 74 69 6f 6e 20 4d 61 69 6c 5f 6d 61 69 6c 28 24 70 61 72 61 6d 73 20 3d 20 27 27 29 0a 20 20 | ction.Mail_mail($params.=.'')... |
3500 | 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 54 68 65 20 6f 74 | ..{........./*..........*.The.ot |
3520 | 68 65 72 20 6d 61 69 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 61 63 63 65 70 74 20 | her.mail.implementations.accept. |
3540 | 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 61 72 72 61 79 73 2e 20 20 49 6e 20 74 68 65 0a 20 20 | parameters.as.arrays...In.the... |
3560 | 20 20 20 20 20 20 20 2a 20 69 6e 74 65 72 65 73 74 20 6f 66 20 62 65 69 6e 67 20 63 6f 6e 73 69 | .......*.interest.of.being.consi |
3580 | 73 74 65 6e 74 2c 20 65 78 70 6c 6f 64 65 20 61 6e 20 61 72 72 61 79 20 69 6e 74 6f 20 61 20 73 | stent,.explode.an.array.into.a.s |
35a0 | 74 72 69 6e 67 20 6f 66 0a 20 20 20 20 20 20 20 20 20 2a 20 70 61 72 61 6d 65 74 65 72 20 61 72 | tring.of..........*.parameter.ar |
35c0 | 67 75 6d 65 6e 74 73 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 | guments...........*/.........if. |
35e0 | 28 69 73 5f 61 72 72 61 79 28 24 70 61 72 61 6d 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | (is_array($params)).{........... |
3600 | 20 20 24 74 68 69 73 2d 3e 5f 70 61 72 61 6d 73 20 3d 20 6a 6f 69 6e 28 27 20 27 2c 20 24 70 61 | ..$this->_params.=.join('.',.$pa |
3620 | 72 61 6d 73 29 3b 0a 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 | rams);.........}.else.{......... |
3640 | 20 20 20 20 24 74 68 69 73 2d 3e 5f 70 61 72 61 6d 73 20 3d 20 24 70 61 72 61 6d 73 3b 0a 20 20 | ....$this->_params.=.$params;... |
3660 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 42 | ......}........../*..........*.B |
3680 | 65 63 61 75 73 65 20 74 68 65 20 6d 61 69 6c 28 29 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 70 | ecause.the.mail().function.may.p |
36a0 | 61 73 73 20 68 65 61 64 65 72 73 20 61 73 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 20 20 20 20 | ass.headers.as.command.line..... |
36c0 | 20 20 20 20 20 2a 20 61 72 67 75 6d 65 6e 74 73 2c 20 77 65 20 63 61 6e 27 74 20 67 75 61 72 61 | .....*.arguments,.we.can't.guara |
36e0 | 6e 74 65 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 22 5c 72 | ntee.the.use.of.the.standard."\r |
3700 | 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 2a 20 73 65 70 61 72 61 74 6f 72 2e 20 20 49 6e 73 74 65 | \n"..........*.separator...Inste |
3720 | 61 64 2c 20 77 65 20 75 73 65 20 74 68 65 20 73 79 73 74 65 6d 27 73 20 6e 61 74 69 76 65 20 6c | ad,.we.use.the.system's.native.l |
3740 | 69 6e 65 20 73 65 70 61 72 61 74 6f 72 2e 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 | ine.separator...........*/...... |
3760 | 20 20 20 24 74 68 69 73 2d 3e 73 65 70 20 3d 20 4f 53 5f 57 49 4e 44 4f 57 53 20 3f 20 22 5c 72 | ...$this->sep.=.OS_WINDOWS.?."\r |
3780 | 5c 6e 22 20 3a 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 0a 09 2f 2a 2a 0a 20 20 20 20 20 2a 20 49 | \n".:."\n";.....}.../**......*.I |
37a0 | 6d 70 6c 65 6d 65 6e 74 73 20 4d 61 69 6c 5f 6d 61 69 6c 3a 3a 73 65 6e 64 28 29 20 66 75 6e 63 | mplements.Mail_mail::send().func |
37c0 | 74 69 6f 6e 20 75 73 69 6e 67 20 70 68 70 27 73 20 62 75 69 6c 74 2d 69 6e 20 6d 61 69 6c 28 29 | tion.using.php's.built-in.mail() |
37e0 | 0a 20 20 20 20 20 2a 20 63 6f 6d 6d 61 6e 64 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 | ......*.command.......*.......*. |
3800 | 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 72 65 63 69 70 69 65 6e 74 73 20 45 69 74 68 65 72 20 | @param.mixed.$recipients.Either. |
3820 | 61 20 63 6f 6d 6d 61 2d 73 65 70 65 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 72 65 63 69 70 69 | a.comma-seperated.list.of.recipi |
3840 | 65 6e 74 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 52 46 43 38 32 32 | ents......*..............(RFC822 |
3860 | 20 63 6f 6d 70 6c 69 61 6e 74 29 2c 20 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 72 65 63 69 | .compliant),.or.an.array.of.reci |
3880 | 70 69 65 6e 74 73 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68 | pients,......*..............each |
38a0 | 20 52 46 43 38 32 32 20 76 61 6c 69 64 2e 20 54 68 69 73 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 | .RFC822.valid..This.may.contain. |
38c0 | 72 65 63 69 70 69 65 6e 74 73 20 6e 6f 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 | recipients.not......*........... |
38e0 | 20 20 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 73 2c 20 66 6f 72 | ...specified.in.the.headers,.for |
3900 | 20 42 63 63 3a 2c 20 72 65 73 65 6e 64 69 6e 67 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 | .Bcc:,.resending......*......... |
3920 | 20 20 20 20 20 6d 65 73 73 61 67 65 73 2c 20 65 74 63 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | .....messages,.etc.......*...... |
3940 | 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 68 65 61 64 65 72 73 20 54 68 65 20 61 72 72 61 | *.@param.array.$headers.The.arra |
3960 | 79 20 6f 66 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 74 68 65 20 6d 61 | y.of.headers.to.send.with.the.ma |
3980 | 69 6c 2c 20 69 6e 20 61 6e 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 | il,.in.an......*..............as |
39a0 | 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 2c 20 77 68 65 72 65 20 74 68 65 20 61 72 72 61 79 | sociative.array,.where.the.array |
39c0 | 20 6b 65 79 20 69 73 20 74 68 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .key.is.the......*.............. |
39e0 | 68 65 61 64 65 72 20 6e 61 6d 65 20 28 69 65 2c 20 27 53 75 62 6a 65 63 74 27 29 2c 20 61 6e 64 | header.name.(ie,.'Subject'),.and |
3a00 | 20 74 68 65 20 61 72 72 61 79 20 76 61 6c 75 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 | .the.array.value......*......... |
3a20 | 20 20 20 20 20 69 73 20 74 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 20 28 69 65 2c 20 27 74 | .....is.the.header.value.(ie,.'t |
3a40 | 65 73 74 27 29 2e 20 54 68 65 20 68 65 61 64 65 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 | est')..The.header......*........ |
3a60 | 20 20 20 20 20 20 70 72 6f 64 75 63 65 64 20 66 72 6f 6d 20 74 68 6f 73 65 20 76 61 6c 75 65 73 | ......produced.from.those.values |
3a80 | 20 77 6f 75 6c 64 20 62 65 20 27 53 75 62 6a 65 63 74 3a 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | .would.be.'Subject:......*...... |
3aa0 | 20 20 20 20 20 20 20 20 74 65 73 74 27 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 | ........test'.......*......*.@pa |
3ac0 | 72 61 6d 20 73 74 72 69 6e 67 20 24 62 6f 64 79 20 54 68 65 20 66 75 6c 6c 20 74 65 78 74 20 6f | ram.string.$body.The.full.text.o |
3ae0 | 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 6f 64 79 2c 20 69 6e 63 6c 75 64 69 6e 67 20 61 6e | f.the.message.body,.including.an |
3b00 | 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 69 6d 65 20 70 61 72 74 | y......*...............Mime.part |
3b20 | 73 2c 20 65 74 63 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 | s,.etc.......*......*.@return.mi |
3b40 | 78 65 64 20 52 65 74 75 72 6e 73 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 6f 72 20 | xed.Returns.true.on.success,.or. |
3b60 | 61 20 50 45 41 52 5f 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.PEAR_Error......*............. |
3b80 | 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 65 72 72 6f 72 | ..containing.a.descriptive.error |
3ba0 | 20 6d 65 73 73 61 67 65 20 6f 6e 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .message.on......*.............. |
3bc0 | 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a | .failure.......*.@access.public. |
3be0 | 20 20 20 20 20 2a 2f 09 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 28 24 72 65 63 69 | .....*/......function.send($reci |
3c00 | 70 69 65 6e 74 73 2c 20 24 68 65 61 64 65 72 73 2c 20 24 62 6f 64 79 29 0a 20 20 20 20 7b 0a 20 | pients,.$headers,.$body).....{.. |
3c20 | 20 20 20 20 20 20 20 2f 2f 20 69 66 20 77 65 27 72 65 20 70 61 73 73 65 64 20 61 6e 20 61 72 72 | .......//.if.we're.passed.an.arr |
3c40 | 61 79 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 2c 20 69 6d 70 6c 6f 64 65 20 69 74 2e 0a 20 20 | ay.of.recipients,.implode.it.... |
3c60 | 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 65 63 69 70 69 65 6e 74 73 29 29 | ......if.(is_array($recipients)) |
3c80 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 20 3d 20 69 6d 70 | .{.............$recipients.=.imp |
3ca0 | 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 65 63 69 70 69 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 | lode(',.',.$recipients);........ |
3cc0 | 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 67 65 74 20 74 68 65 20 53 75 62 6a 65 63 74 20 6f | .}..........//.get.the.Subject.o |
3ce0 | 75 74 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 73 20 61 72 72 61 79 20 73 6f 20 74 68 61 74 20 | ut.of.the.headers.array.so.that. |
3d00 | 77 65 20 63 61 6e 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 61 73 73 20 69 74 20 61 73 20 61 20 73 | we.can.........//.pass.it.as.a.s |
3d20 | 65 70 65 72 61 74 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 6d 61 69 6c 28 29 2e 0a 20 20 20 20 | eperate.argument.to.mail()...... |
3d40 | 20 20 20 20 24 73 75 62 6a 65 63 74 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 | ....$subject.=.'';.........if.(i |
3d60 | 73 73 65 74 28 24 68 65 61 64 65 72 73 5b 27 53 75 62 6a 65 63 74 27 5d 29 29 20 7b 0a 20 20 20 | sset($headers['Subject'])).{.... |
3d80 | 20 20 20 20 20 20 20 20 20 24 73 75 62 6a 65 63 74 20 3d 20 24 68 65 61 64 65 72 73 5b 27 53 75 | .........$subject.=.$headers['Su |
3da0 | 62 6a 65 63 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 65 74 28 24 68 65 61 64 | bject'];.............unset($head |
3dc0 | 65 72 73 5b 27 53 75 62 6a 65 63 74 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | ers['Subject']);.........}...... |
3de0 | 20 20 20 20 2f 2f 20 66 6c 61 74 74 65 6e 20 74 68 65 20 68 65 61 64 65 72 73 20 6f 75 74 2e 0a | ....//.flatten.the.headers.out.. |
3e00 | 20 20 20 20 20 20 20 20 6c 69 73 74 28 2c 24 74 65 78 74 5f 68 65 61 64 65 72 73 29 20 3d 20 4d | ........list(,$text_headers).=.M |
3e20 | 61 69 6c 3a 3a 70 72 65 70 61 72 65 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 3b 0a 0a | ail::prepareHeaders($headers);.. |
3e40 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6c 28 24 72 65 63 69 70 69 65 6e 74 73 2c | ........return.mail($recipients, |
3e60 | 20 24 73 75 62 6a 65 63 74 2c 20 24 62 6f 64 79 2c 20 24 74 65 78 74 5f 68 65 61 64 65 72 73 2c | .$subject,.$body,.$text_headers, |
3e80 | 20 24 74 68 69 73 2d 3e 5f 70 61 72 61 6d 73 29 3b 0a 20 20 20 20 7d 0a 0a 7d 0a 00 00 00 00 00 | .$this->_params);.....}..}...... |
3ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4000 | 4d 61 69 6c 2d 31 2e 31 2e 30 2f 4d 61 69 6c 2f 73 65 6e 64 6d 61 69 6c 2e 70 68 70 00 00 00 00 | Mail-1.1.0/Mail/sendmail.php.... |
4020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4040 | 00 00 00 00 00 00 00 00 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 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
4080 | 20 20 31 32 34 34 34 20 20 37 36 37 34 37 35 35 34 36 33 20 20 31 31 30 34 30 20 00 00 00 00 00 | ..12444..7674755463..11040...... |
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 | 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.//.//.+------------------- |
4220 | 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 | -------------------------------- |
4240 | 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 |
4260 | 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......................... |
4280 | 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 | ...............................| |
42a0 | 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 | .//.+--------------------------- |
42c0 | 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 | -------------------------------- |
42e0 | 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). |
4300 | 31 39 39 37 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 | 1997-2003.The.PHP.Group......... |
4320 | 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 | .......................|.//.+--- |
4340 | 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 | -------------------------------- |
4360 | 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 | -------------------------------- |
4380 | 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 |
43a0 | 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 |
43c0 | 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 |
43e0 | 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 |
4400 | 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........|.//. |
4420 | 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 |
4440 | 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.................... |
4460 | 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 |
4480 | 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............... |
44a0 | 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 |
44c0 | 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 |
44e0 | 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...| |
4500 | 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 |
4520 | 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 |
4540 | 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 |
4560 | 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 |
4580 | 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................|.//.+--- |
45a0 | 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 | -------------------------------- |
45c0 | 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 | -------------------------------- |
45e0 | 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 |
4600 | 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>............. |
4620 | 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 | ...............|.//.+----------- |
4640 | 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 | -------------------------------- |
4660 | 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 |
4680 | 71 75 69 72 65 5f 6f 6e 63 65 20 27 4d 61 69 6c 2e 70 68 70 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 53 | quire_once.'Mail.php';../**..*.S |
46a0 | 65 6e 64 6d 61 69 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 50 45 | endmail.implementation.of.the.PE |
46c0 | 41 52 20 4d 61 69 6c 3a 3a 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 2a 20 40 61 63 63 65 73 73 20 | AR.Mail::.interface...*.@access. |
46e0 | 70 75 62 6c 69 63 0a 20 2a 20 40 70 61 63 6b 61 67 65 20 4d 61 69 6c 0a 20 2a 20 40 76 65 72 73 | public..*.@package.Mail..*.@vers |
4700 | 69 6f 6e 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 33 20 24 0a 20 2a 2f 0a 63 6c 61 73 73 20 4d | ion.$Revision:.1.3.$..*/.class.M |
4720 | 61 69 6c 5f 73 65 6e 64 6d 61 69 6c 20 65 78 74 65 6e 64 73 20 4d 61 69 6c 20 7b 0a 20 20 20 20 | ail_sendmail.extends.Mail.{..... |
4740 | 0a 09 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 | ../**......*.The.location.of.the |
4760 | 20 73 65 6e 64 6d 61 69 6c 20 6f 72 20 73 65 6e 64 6d 61 69 6c 20 77 72 61 70 70 65 72 20 62 69 | .sendmail.or.sendmail.wrapper.bi |
4780 | 6e 61 72 79 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 2a 20 66 69 6c 65 73 79 73 74 65 6d 2e 0a 20 | nary.on.the......*.filesystem... |
47a0 | 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 |
47c0 | 72 20 24 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 20 3d 20 27 2f 75 73 72 2f 73 62 69 6e 2f 73 65 | r.$sendmail_path.=.'/usr/sbin/se |
47e0 | 6e 64 6d 61 69 6c 27 3b 0a 20 20 20 20 0a 09 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 6e 79 20 65 78 | ndmail';......./**......*.Any.ex |
4800 | 74 72 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 70 | tra.command-line.parameters.to.p |
4820 | 61 73 73 20 74 6f 20 74 68 65 20 73 65 6e 64 6d 61 69 6c 20 6f 72 0a 20 20 20 20 20 2a 20 73 65 | ass.to.the.sendmail.or......*.se |
4840 | 6e 64 6d 61 69 6c 20 77 72 61 70 70 65 72 20 62 69 6e 61 72 79 2e 0a 20 20 20 20 20 2a 20 40 76 | ndmail.wrapper.binary.......*.@v |
4860 | 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 73 65 6e 64 6d | ar.string......*/.....var.$sendm |
4880 | 61 69 6c 5f 61 72 67 73 20 3d 20 27 27 3b 0a 20 20 20 20 0a 09 2f 2a 2a 0a 20 20 20 20 20 2a 20 | ail_args.=.'';......./**......*. |
48a0 | 43 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 49 6e 73 74 | Constructor.......*.......*.Inst |
48c0 | 61 6e 74 69 61 74 65 73 20 61 20 6e 65 77 20 4d 61 69 6c 5f 73 65 6e 64 6d 61 69 6c 3a 3a 20 6f | antiates.a.new.Mail_sendmail::.o |
48e0 | 62 6a 65 63 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 | bject.based.on.the.parameters... |
4900 | 20 20 20 2a 20 70 61 73 73 65 64 20 69 6e 2e 20 49 74 20 6c 6f 6f 6b 73 20 66 6f 72 20 74 68 65 | ...*.passed.in..It.looks.for.the |
4920 | 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 72 61 6d 65 74 65 72 73 3a 0a 20 20 20 20 20 2a 20 20 20 | .following.parameters:......*... |
4940 | 20 20 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 20 20 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 | ..sendmail_path....The.location. |
4960 | 6f 66 20 74 68 65 20 73 65 6e 64 6d 61 69 6c 20 62 69 6e 61 72 79 20 6f 6e 20 74 68 65 0a 20 20 | of.the.sendmail.binary.on.the... |
4980 | 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 66 69 6c 65 73 79 | ...*......................filesy |
49a0 | 73 74 65 6d 2e 20 44 65 66 61 75 6c 74 73 20 74 6f 20 27 2f 75 73 72 2f 73 62 69 6e 2f 73 65 6e | stem..Defaults.to.'/usr/sbin/sen |
49c0 | 64 6d 61 69 6c 27 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 20 20 20 20 73 65 6e 64 6d 61 | dmail'.......*......*.....sendma |
49e0 | 69 6c 5f 61 72 67 73 20 20 20 20 41 6e 79 20 65 78 74 72 61 20 70 61 72 61 6d 65 74 65 72 73 20 | il_args....Any.extra.parameters. |
4a00 | 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 73 65 6e 64 6d 61 69 6c 0a 20 20 20 20 20 2a 20 20 | to.pass.to.the.sendmail......*.. |
4a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 73 65 6e 64 6d 61 69 6c 20 | ....................or.sendmail. |
4a40 | 77 72 61 70 70 65 72 20 62 69 6e 61 72 79 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 66 | wrapper.binary.......*......*.If |
4a60 | 20 61 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 24 | .a.parameter.is.present.in.the.$ |
4a80 | 70 61 72 61 6d 73 20 61 72 72 61 79 2c 20 69 74 20 72 65 70 6c 61 63 65 73 20 74 68 65 0a 20 20 | params.array,.it.replaces.the... |
4aa0 | 20 20 20 2a 20 64 65 66 61 75 6c 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 | ...*.default.......*......*.@par |
4ac0 | 61 6d 20 61 72 72 61 79 20 24 70 61 72 61 6d 73 20 48 61 73 68 20 63 6f 6e 74 61 69 6e 69 6e 67 | am.array.$params.Hash.containing |
4ae0 | 20 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 74 | .any.parameters.different.from.t |
4b00 | 68 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 73 2e | he......*..............defaults. |
4b20 | 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 2f 09 0a | ......*.@access.public......*/.. |
4b40 | 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4d 61 69 6c 5f 73 65 6e 64 6d 61 69 6c 28 24 70 61 72 61 | ....function.Mail_sendmail($para |
4b60 | 6d 73 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 70 61 72 | ms).....{.........if.(isset($par |
4b80 | 61 6d 73 5b 27 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 27 5d 29 29 20 24 74 68 69 73 2d 3e 73 65 | ams['sendmail_path'])).$this->se |
4ba0 | 6e 64 6d 61 69 6c 5f 70 61 74 68 20 3d 20 24 70 61 72 61 6d 73 5b 27 73 65 6e 64 6d 61 69 6c 5f | ndmail_path.=.$params['sendmail_ |
4bc0 | 70 61 74 68 27 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 70 61 72 61 6d | path'];.........if.(isset($param |
4be0 | 73 5b 27 73 65 6e 64 6d 61 69 6c 5f 61 72 67 73 27 5d 29 29 20 24 74 68 69 73 2d 3e 73 65 6e 64 | s['sendmail_args'])).$this->send |
4c00 | 6d 61 69 6c 5f 61 72 67 73 20 3d 20 24 70 61 72 61 6d 73 5b 27 73 65 6e 64 6d 61 69 6c 5f 61 72 | mail_args.=.$params['sendmail_ar |
4c20 | 67 73 27 5d 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 42 65 63 | gs'];........../*..........*.Bec |
4c40 | 61 75 73 65 20 77 65 20 6e 65 65 64 20 74 6f 20 70 61 73 73 20 6d 65 73 73 61 67 65 20 68 65 61 | ause.we.need.to.pass.message.hea |
4c60 | 64 65 72 73 20 74 6f 20 74 68 65 20 73 65 6e 64 6d 61 69 6c 20 70 72 6f 67 72 61 6d 20 6f 6e 0a | ders.to.the.sendmail.program.on. |
4c80 | 20 20 20 20 20 20 20 20 20 2a 20 74 68 65 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 77 65 20 63 | .........*.the.commandline,.we.c |
4ca0 | 61 6e 27 74 20 67 75 61 72 61 6e 74 65 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 73 74 | an't.guarantee.the.use.of.the.st |
4cc0 | 61 6e 64 61 72 64 20 22 5c 72 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 2a 20 73 65 70 61 72 61 74 | andard."\r\n"..........*.separat |
4ce0 | 6f 72 2e 20 20 49 6e 73 74 65 61 64 2c 20 77 65 20 75 73 65 20 74 68 65 20 73 79 73 74 65 6d 27 | or...Instead,.we.use.the.system' |
4d00 | 73 20 6e 61 74 69 76 65 20 6c 69 6e 65 20 73 65 70 61 72 61 74 6f 72 2e 0a 20 20 20 20 20 20 20 | s.native.line.separator......... |
4d20 | 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 70 20 3d 20 4f 53 5f 57 49 4e | ..*/.........$this->sep.=.OS_WIN |
4d40 | 44 4f 57 53 20 3f 20 22 5c 72 5c 6e 22 20 3a 20 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 | DOWS.?."\r\n".:."\n";.....}..... |
4d60 | 0a 09 2f 2a 2a 0a 20 20 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 73 20 4d 61 69 6c 3a 3a 73 65 | ../**......*.Implements.Mail::se |
4d80 | 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73 69 6e 67 20 74 68 65 20 73 65 6e 64 6d 61 69 6c | nd().function.using.the.sendmail |
4da0 | 0a 20 20 20 20 20 2a 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 62 69 6e 61 72 79 2e 0a 20 20 20 | ......*.command-line.binary..... |
4dc0 | 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 72 65 63 69 70 69 | ..*.......*.@param.mixed.$recipi |
4de0 | 65 6e 74 73 20 45 69 74 68 65 72 20 61 20 63 6f 6d 6d 61 2d 73 65 70 65 72 61 74 65 64 20 6c 69 | ents.Either.a.comma-seperated.li |
4e00 | 73 74 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 | st.of.recipients......*......... |
4e20 | 20 20 20 20 20 28 52 46 43 38 32 32 20 63 6f 6d 70 6c 69 61 6e 74 29 2c 20 6f 72 20 61 6e 20 61 | .....(RFC822.compliant),.or.an.a |
4e40 | 72 72 61 79 20 6f 66 20 72 65 63 69 70 69 65 6e 74 73 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | rray.of.recipients,......*...... |
4e60 | 20 20 20 20 20 20 20 20 65 61 63 68 20 52 46 43 38 32 32 20 76 61 6c 69 64 2e 20 54 68 69 73 20 | ........each.RFC822.valid..This. |
4e80 | 6d 61 79 20 63 6f 6e 74 61 69 6e 20 72 65 63 69 70 69 65 6e 74 73 20 6e 6f 74 0a 20 20 20 20 20 | may.contain.recipients.not...... |
4ea0 | 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 | *..............specified.in.the. |
4ec0 | 68 65 61 64 65 72 73 2c 20 66 6f 72 20 42 63 63 3a 2c 20 72 65 73 65 6e 64 69 6e 67 0a 20 20 20 | headers,.for.Bcc:,.resending.... |
4ee0 | 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 73 2c 20 65 74 63 2e 0a | ..*..............messages,.etc.. |
4f00 | 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 68 65 61 64 | .....*......*.@param.array.$head |
4f20 | 65 72 73 20 54 68 65 20 61 72 72 61 79 20 6f 66 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 | ers.The.array.of.headers.to.send |
4f40 | 20 77 69 74 68 20 74 68 65 20 6d 61 69 6c 2c 20 69 6e 20 61 6e 0a 20 20 20 20 20 2a 20 20 20 20 | .with.the.mail,.in.an......*.... |
4f60 | 20 20 20 20 20 20 20 20 20 20 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 2c 20 77 68 65 | ..........associative.array,.whe |
4f80 | 72 65 20 74 68 65 20 61 72 72 61 79 20 6b 65 79 20 69 73 20 74 68 65 0a 20 20 20 20 20 2a 20 20 | re.the.array.key.is.the......*.. |
4fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 20 6e 61 6d 65 20 28 69 65 2c 20 27 53 75 | ............header.name.(ie,.'Su |
4fc0 | 62 6a 65 63 74 27 29 2c 20 61 6e 64 20 74 68 65 20 61 72 72 61 79 20 76 61 6c 75 65 0a 20 20 20 | bject'),.and.the.array.value.... |
4fe0 | 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 74 68 65 20 68 65 61 64 65 72 20 76 | ..*..............is.the.header.v |
5000 | 61 6c 75 65 20 28 69 65 2c 20 27 74 65 73 74 27 29 2e 20 54 68 65 20 68 65 61 64 65 72 0a 20 20 | alue.(ie,.'test')..The.header... |
5020 | 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 64 75 63 65 64 20 66 72 6f 6d 20 | ...*..............produced.from. |
5040 | 74 68 6f 73 65 20 76 61 6c 75 65 73 20 77 6f 75 6c 64 20 62 65 20 27 53 75 62 6a 65 63 74 3a 0a | those.values.would.be.'Subject:. |
5060 | 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 27 2e 0a 20 20 20 20 20 | .....*..............test'....... |
5080 | 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 62 6f 64 79 20 54 68 65 | *......*.@param.string.$body.The |
50a0 | 20 66 75 6c 6c 20 74 65 78 74 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 6f 64 79 2c 20 | .full.text.of.the.message.body,. |
50c0 | 69 6e 63 6c 75 64 69 6e 67 20 61 6e 79 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 | including.any......*............ |
50e0 | 20 20 20 4d 69 6d 65 20 70 61 72 74 73 2c 20 65 74 63 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | ...Mime.parts,.etc.......*...... |
5100 | 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 74 72 75 65 20 6f 6e 20 | *.@return.mixed.Returns.true.on. |
5120 | 73 75 63 63 65 73 73 2c 20 6f 72 20 61 20 50 45 41 52 5f 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 | success,.or.a.PEAR_Error......*. |
5140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 64 65 73 63 72 | ..............containing.a.descr |
5160 | 69 70 74 69 76 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 0a 20 20 20 20 20 2a 20 20 | iptive.error.message.on......*.. |
5180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 20 40 61 63 | .............failure.......*.@ac |
51a0 | 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 2f 09 0a 20 20 20 20 66 75 6e 63 74 69 6f | cess.public......*/......functio |
51c0 | 6e 20 73 65 6e 64 28 24 72 65 63 69 70 69 65 6e 74 73 2c 20 24 68 65 61 64 65 72 73 2c 20 24 62 | n.send($recipients,.$headers,.$b |
51e0 | 6f 64 79 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 63 69 70 69 65 6e 74 73 20 3d | ody).....{.........$recipients.= |
5200 | 20 65 73 63 61 70 65 53 68 65 6c 6c 43 6d 64 28 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 74 68 | .escapeShellCmd(implode('.',.$th |
5220 | 69 73 2d 3e 70 61 72 73 65 52 65 63 69 70 69 65 6e 74 73 28 24 72 65 63 69 70 69 65 6e 74 73 29 | is->parseRecipients($recipients) |
5240 | 29 29 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 66 72 6f 6d 2c | ));..................list($from, |
5260 | 20 24 74 65 78 74 5f 68 65 61 64 65 72 73 29 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 | .$text_headers).=.$this->prepare |
5280 | 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 | Headers($headers);.........if.(! |
52a0 | 69 73 73 65 74 28 24 66 72 6f 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | isset($from)).{.............retu |
52c0 | 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 4e 6f 20 66 72 6f 6d 20 61 64 64 72 65 | rn.new.PEAR_Error('No.from.addre |
52e0 | 73 73 20 67 69 76 65 6e 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 73 | ss.given.');.........}.elseif.(s |
5300 | 74 72 73 74 72 28 24 66 72 6f 6d 2c 20 27 20 27 29 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 | trstr($from,.'.').||............ |
5320 | 20 20 20 20 20 20 20 73 74 72 73 74 72 28 24 66 72 6f 6d 2c 20 27 3b 27 29 20 7c 7c 0a 20 20 20 | .......strstr($from,.';').||.... |
5340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 73 74 72 28 24 66 72 6f 6d 2c 20 27 26 27 | ...............strstr($from,.'&' |
5360 | 29 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 73 74 72 28 24 66 | ).||...................strstr($f |
5380 | 72 6f 6d 2c 20 27 60 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | rom,.'`')).{.............return. |
53a0 | 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 46 72 6f 6d 20 61 64 64 72 65 73 73 20 73 70 65 | new.PEAR_Error('From.address.spe |
53c0 | 63 69 66 69 65 64 20 77 69 74 68 20 64 61 6e 67 65 72 6f 75 73 20 63 68 61 72 61 63 74 65 72 73 | cified.with.dangerous.characters |
53e0 | 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | .');.........}.................. |
5400 | 24 72 65 73 75 6c 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 69 73 5f 65 78 65 | $result.=.0;.........if.(@is_exe |
5420 | 63 75 74 61 62 6c 65 28 24 74 68 69 73 2d 3e 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 29 29 20 7b | cutable($this->sendmail_path)).{ |
5440 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 72 6f 6d 20 3d 20 65 73 63 61 70 65 53 68 65 6c 6c | .............$from.=.escapeShell |
5460 | 43 6d 64 28 24 66 72 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 61 69 6c 20 3d 20 | Cmd($from);.............$mail.=. |
5480 | 70 6f 70 65 6e 28 24 74 68 69 73 2d 3e 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 20 2e 20 28 21 65 | popen($this->sendmail_path...(!e |
54a0 | 6d 70 74 79 28 24 74 68 69 73 2d 3e 73 65 6e 64 6d 61 69 6c 5f 61 72 67 73 29 20 3f 20 27 20 27 | mpty($this->sendmail_args).?.'.' |
54c0 | 20 2e 20 24 74 68 69 73 2d 3e 73 65 6e 64 6d 61 69 6c 5f 61 72 67 73 20 3a 20 27 27 29 20 2e 20 | ...$this->sendmail_args.:.'')... |
54e0 | 22 20 2d 66 24 66 72 6f 6d 20 2d 2d 20 24 72 65 63 69 70 69 65 6e 74 73 22 2c 20 27 77 27 29 3b | ".-f$from.--.$recipients",.'w'); |
5500 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 70 75 74 73 28 24 6d 61 69 6c 2c 20 24 74 65 78 74 5f | .............fputs($mail,.$text_ |
5520 | 68 65 61 64 65 72 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 70 75 74 73 28 24 6d 61 69 | headers);.............fputs($mai |
5540 | 6c 2c 20 24 74 68 69 73 2d 3e 73 65 70 29 3b 20 20 2f 2f 20 6e 65 77 6c 69 6e 65 20 74 6f 20 65 | l,.$this->sep);..//.newline.to.e |
5560 | 6e 64 20 74 68 65 20 68 65 61 64 65 72 73 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 | nd.the.headers.section.......... |
5580 | 20 20 20 66 70 75 74 73 28 24 6d 61 69 6c 2c 20 24 62 6f 64 79 29 3b 0a 20 20 20 20 20 20 20 20 | ...fputs($mail,.$body);......... |
55a0 | 20 20 20 20 24 72 65 73 75 6c 74 20 3d 20 70 63 6c 6f 73 65 28 24 6d 61 69 6c 29 20 3e 3e 20 38 | ....$result.=.pclose($mail).>>.8 |
55c0 | 20 26 20 30 78 46 46 3b 20 2f 2f 20 6e 65 65 64 20 74 6f 20 73 68 69 66 74 20 74 68 65 20 70 63 | .&.0xFF;.//.need.to.shift.the.pc |
55e0 | 6c 6f 73 65 20 72 65 73 75 6c 74 20 74 6f 20 67 65 74 20 74 68 65 20 65 78 69 74 20 63 6f 64 65 | lose.result.to.get.the.exit.code |
5600 | 0a 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 72 65 | .........}.else.{.............re |
5620 | 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 73 65 6e 64 6d 61 69 6c 20 5b 27 | turn.new.PEAR_Error('sendmail.[' |
5640 | 20 2e 20 24 74 68 69 73 2d 3e 73 65 6e 64 6d 61 69 6c 5f 70 61 74 68 20 2e 20 27 5d 20 6e 6f 74 | ...$this->sendmail_path...'].not |
5660 | 20 65 78 65 63 75 74 61 62 6c 65 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 | .executable');.........}........ |
5680 | 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 65 73 75 6c 74 20 21 3d 20 30 29 20 7b 0a 20 20 | ..........if.($result.!=.0).{... |
56a0 | 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 28 | ..........return.new.PEAR_Error( |
56c0 | 27 73 65 6e 64 6d 61 69 6c 20 72 65 74 75 72 6e 65 64 20 65 72 72 6f 72 20 63 6f 64 65 20 27 20 | 'sendmail.returned.error.code.'. |
56e0 | 2e 20 24 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 | ..$result);.........}........... |
5700 | 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 20 20 20 20 0a 7d | .......return.true;.....}......} |
5720 | 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .?>............................. |
5740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
57a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
57c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
57e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5800 | 4d 61 69 6c 2d 31 2e 31 2e 30 2f 4d 61 69 6c 2f 73 6d 74 70 2e 70 68 70 00 00 00 00 00 00 00 00 | Mail-1.1.0/Mail/smtp.php........ |
5820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5860 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
5880 | 20 20 31 34 31 34 35 20 20 37 36 34 33 30 35 33 33 31 33 20 20 31 30 32 30 34 20 00 00 00 00 00 | ..14145..7643053313..10204...... |
58a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
58c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
58e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
59a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
59c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
59e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5a00 | 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.//.//.+------------------- |
5a20 | 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 | -------------------------------- |
5a40 | 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 |
5a60 | 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......................... |
5a80 | 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 | ...............................| |
5aa0 | 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 | .//.+--------------------------- |
5ac0 | 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 | -------------------------------- |
5ae0 | 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). |
5b00 | 31 39 39 37 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 | 1997-2003.The.PHP.Group......... |
5b20 | 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 | .......................|.//.+--- |
5b40 | 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 | -------------------------------- |
5b60 | 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 | -------------------------------- |
5b80 | 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 |
5ba0 | 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 |
5bc0 | 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 |
5be0 | 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 |
5c00 | 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........|.//. |
5c20 | 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 |
5c40 | 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.................... |
5c60 | 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 |
5c80 | 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............... |
5ca0 | 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 |
5cc0 | 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 |
5ce0 | 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...| |
5d00 | 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 |
5d20 | 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 |
5d40 | 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 |
5d60 | 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 |
5d80 | 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................|.//.+--- |
5da0 | 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 | -------------------------------- |
5dc0 | 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 | -------------------------------- |
5de0 | 2d 2d 2d 2b 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 | ---+.//.|.Authors:.Chuck.Hagenbu |
5e00 | 63 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 | ch.<chuck@horde.org>............ |
5e20 | 20 20 20 20 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 | ...............|.//.|..........J |
5e40 | 6f 6e 20 50 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 | on.Parise.<jon@php.net>......... |
5e60 | 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 | ...........................|.//. |
5e80 | 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 | +------------------------------- |
5ea0 | 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 | -------------------------------- |
5ec0 | 2d 2d 2d 2d 2d 2d 2d 2b 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 27 4d 61 69 6c 2e 70 68 70 | -------+..require_once.'Mail.php |
5ee0 | 27 3b 0a 0a 2f 2a 2a 0a 20 2a 20 53 4d 54 50 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f | ';../**..*.SMTP.implementation.o |
5f00 | 66 20 74 68 65 20 50 45 41 52 20 4d 61 69 6c 3a 3a 20 69 6e 74 65 72 66 61 63 65 2e 20 52 65 71 | f.the.PEAR.Mail::.interface..Req |
5f20 | 75 69 72 65 73 20 74 68 65 20 50 45 41 52 0a 20 2a 20 4e 65 74 5f 53 4d 54 50 3a 3a 20 63 6c 61 | uires.the.PEAR..*.Net_SMTP::.cla |
5f40 | 73 73 2e 0a 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 2a 20 40 70 61 63 6b 61 67 | ss...*.@access.public..*.@packag |
5f60 | 65 20 4d 61 69 6c 0a 20 2a 20 40 76 65 72 73 69 6f 6e 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e | e.Mail..*.@version.$Revision:.1. |
5f80 | 31 30 20 24 0a 20 2a 2f 0a 63 6c 61 73 73 20 4d 61 69 6c 5f 73 6d 74 70 20 65 78 74 65 6e 64 73 | 10.$..*/.class.Mail_smtp.extends |
5fa0 | 20 4d 61 69 6c 20 7b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 53 4d 54 50 | .Mail.{....../**......*.The.SMTP |
5fc0 | 20 68 6f 73 74 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 | .host.to.connect.to.......*.@var |
5fe0 | 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 68 6f 73 74 20 3d 20 | .string......*/.....var.$host.=. |
6000 | 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 | 'localhost';....../**......*.The |
6020 | 20 70 6f 72 74 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 20 69 73 20 6f 6e 2e 0a 20 20 20 | .port.the.SMTP.server.is.on..... |
6040 | 20 20 2a 20 40 76 61 72 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 | ..*.@var.integer......*/.....var |
6060 | 20 24 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 53 68 6f | .$port.=.25;....../**......*.Sho |
6080 | 75 6c 64 20 53 4d 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 62 65 20 75 73 65 64 3f | uld.SMTP.authentication.be.used? |
60a0 | 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 54 68 69 73 20 76 61 6c 75 65 20 6d 61 79 20 62 65 | ......*......*.This.value.may.be |
60c0 | 20 73 65 74 20 74 6f 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 74 68 65 20 6e 61 6d 65 20 | .set.to.true,.false.or.the.name. |
60e0 | 6f 66 20 61 20 73 70 65 63 69 66 69 63 0a 20 20 20 20 20 2a 20 61 75 74 68 65 6e 74 69 63 61 74 | of.a.specific......*.authenticat |
6100 | 69 6f 6e 20 6d 65 74 68 6f 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 66 20 74 68 65 | ion.method.......*......*.If.the |
6120 | 20 76 61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 74 72 75 65 2c 20 74 68 65 20 4e 65 74 5f 53 | .value.is.set.to.true,.the.Net_S |
6140 | 4d 54 50 20 70 61 63 6b 61 67 65 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 75 73 65 0a | MTP.package.will.attempt.to.use. |
6160 | 20 20 20 20 20 2a 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 | .....*.the.best.authentication.m |
6180 | 65 74 68 6f 64 20 61 64 76 65 72 74 69 73 65 64 20 62 79 20 74 68 65 20 72 65 6d 6f 74 65 20 53 | ethod.advertised.by.the.remote.S |
61a0 | 4d 54 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 76 61 72 20 6d | MTP.server.......*......*.@var.m |
61c0 | 69 78 65 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 61 75 74 68 20 3d 20 66 61 6c | ixed......*/.....var.$auth.=.fal |
61e0 | 73 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 75 73 65 72 6e 61 6d 65 | se;....../**......*.The.username |
6200 | 20 74 6f 20 75 73 65 20 69 66 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 20 72 65 71 75 69 | .to.use.if.the.SMTP.server.requi |
6220 | 72 65 73 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 | res.authentication.......*.@var. |
6240 | 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 75 73 65 72 6e 61 6d 65 | string......*/.....var.$username |
6260 | 20 3d 20 27 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 70 61 73 73 77 | .=.'';....../**......*.The.passw |
6280 | 6f 72 64 20 74 6f 20 75 73 65 20 69 66 20 74 68 65 20 53 4d 54 50 20 73 65 72 76 65 72 20 72 65 | ord.to.use.if.the.SMTP.server.re |
62a0 | 71 75 69 72 65 73 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 20 40 76 | quires.authentication.......*.@v |
62c0 | 61 72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 70 61 73 73 77 | ar.string......*/.....var.$passw |
62e0 | 6f 72 64 20 3d 20 27 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 6f 6e 73 74 72 | ord.=.'';....../**......*.Constr |
6300 | 75 63 74 6f 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 6e 73 74 61 6e 74 69 61 74 65 | uctor.......*......*.Instantiate |
6320 | 73 20 61 20 6e 65 77 20 4d 61 69 6c 5f 73 6d 74 70 3a 3a 20 6f 62 6a 65 63 74 20 62 61 73 65 64 | s.a.new.Mail_smtp::.object.based |
6340 | 20 6f 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 2a 20 70 61 73 73 65 64 | .on.the.parameters......*.passed |
6360 | 20 69 6e 2e 20 49 74 20 6c 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | .in..It.looks.for.the.following. |
6380 | 70 61 72 61 6d 65 74 65 72 73 3a 0a 20 20 20 20 20 2a 20 20 20 20 20 68 6f 73 74 20 20 20 20 20 | parameters:......*.....host..... |
63a0 | 20 20 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 20 44 65 66 | ...The.server.to.connect.to..Def |
63c0 | 61 75 6c 74 73 20 74 6f 20 6c 6f 63 61 6c 68 6f 73 74 2e 0a 20 20 20 20 20 2a 20 20 20 20 20 70 | aults.to.localhost.......*.....p |
63e0 | 6f 72 74 20 20 20 20 20 20 20 20 54 68 65 20 70 6f 72 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 | ort........The.port.to.connect.t |
6400 | 6f 2e 20 44 65 66 61 75 6c 74 73 20 74 6f 20 32 35 2e 0a 20 20 20 20 20 2a 20 20 20 20 20 61 75 | o..Defaults.to.25.......*.....au |
6420 | 74 68 20 20 20 20 20 20 20 20 53 4d 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 20 20 | th........SMTP.authentication... |
6440 | 44 65 66 61 75 6c 74 73 20 74 6f 20 6e 6f 6e 65 2e 0a 20 20 20 20 20 2a 20 20 20 20 20 75 73 65 | Defaults.to.none.......*.....use |
6460 | 72 6e 61 6d 65 20 20 20 20 54 68 65 20 75 73 65 72 6e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 | rname....The.username.to.use.for |
6480 | 20 53 4d 54 50 20 61 75 74 68 2e 20 4e 6f 20 64 65 66 61 75 6c 74 2e 0a 20 20 20 20 20 2a 20 20 | .SMTP.auth..No.default.......*.. |
64a0 | 20 20 20 70 61 73 73 77 6f 72 64 20 20 20 20 54 68 65 20 70 61 73 73 77 6f 72 64 20 74 6f 20 75 | ...password....The.password.to.u |
64c0 | 73 65 20 66 6f 72 20 53 4d 54 50 20 61 75 74 68 2e 20 4e 6f 20 64 65 66 61 75 6c 74 2e 0a 20 20 | se.for.SMTP.auth..No.default.... |
64e0 | 20 20 20 2a 0a 20 20 20 20 20 2a 20 49 66 20 61 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 70 72 | ...*......*.If.a.parameter.is.pr |
6500 | 65 73 65 6e 74 20 69 6e 20 74 68 65 20 24 70 61 72 61 6d 73 20 61 72 72 61 79 2c 20 69 74 20 72 | esent.in.the.$params.array,.it.r |
6520 | 65 70 6c 61 63 65 73 20 74 68 65 0a 20 20 20 20 20 2a 20 64 65 66 61 75 6c 74 2e 0a 20 20 20 20 | eplaces.the......*.default...... |
6540 | 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 48 61 73 68 20 63 6f 6e 74 | .*......*.@param.array.Hash.cont |
6560 | 61 69 6e 69 6e 67 20 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73 20 64 69 66 66 65 72 65 6e 74 20 | aining.any.parameters.different. |
6580 | 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 | from.the......*..............def |
65a0 | 61 75 6c 74 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 | aults.......*.@access.public.... |
65c0 | 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4d 61 69 6c 5f 73 6d 74 70 28 24 70 61 72 | ..*/.....function.Mail_smtp($par |
65e0 | 61 6d 73 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 70 61 | ams).....{.........if.(isset($pa |
6600 | 72 61 6d 73 5b 27 68 6f 73 74 27 5d 29 29 20 24 74 68 69 73 2d 3e 68 6f 73 74 20 3d 20 24 70 61 | rams['host'])).$this->host.=.$pa |
6620 | 72 61 6d 73 5b 27 68 6f 73 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 | rams['host'];.........if.(isset( |
6640 | 24 70 61 72 61 6d 73 5b 27 70 6f 72 74 27 5d 29 29 20 24 74 68 69 73 2d 3e 70 6f 72 74 20 3d 20 | $params['port'])).$this->port.=. |
6660 | 24 70 61 72 61 6d 73 5b 27 70 6f 72 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 | $params['port'];.........if.(iss |
6680 | 65 74 28 24 70 61 72 61 6d 73 5b 27 61 75 74 68 27 5d 29 29 20 24 74 68 69 73 2d 3e 61 75 74 68 | et($params['auth'])).$this->auth |
66a0 | 20 3d 20 24 70 61 72 61 6d 73 5b 27 61 75 74 68 27 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 | .=.$params['auth'];.........if.( |
66c0 | 69 73 73 65 74 28 24 70 61 72 61 6d 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 29 29 20 24 74 68 69 | isset($params['username'])).$thi |
66e0 | 73 2d 3e 75 73 65 72 6e 61 6d 65 20 3d 20 24 70 61 72 61 6d 73 5b 27 75 73 65 72 6e 61 6d 65 27 | s->username.=.$params['username' |
6700 | 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 70 61 72 61 6d 73 5b 27 70 61 | ];.........if.(isset($params['pa |
6720 | 73 73 77 6f 72 64 27 5d 29 29 20 24 74 68 69 73 2d 3e 70 61 73 73 77 6f 72 64 20 3d 20 24 70 61 | ssword'])).$this->password.=.$pa |
6740 | 72 61 6d 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a | rams['password'];.....}....../** |
6760 | 0a 20 20 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 73 20 4d 61 69 6c 3a 3a 73 65 6e 64 28 29 20 | ......*.Implements.Mail::send(). |
6780 | 66 75 6e 63 74 69 6f 6e 20 75 73 69 6e 67 20 53 4d 54 50 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 | function.using.SMTP.......*..... |
67a0 | 20 2a 20 40 70 61 72 61 6d 20 6d 69 78 65 64 20 24 72 65 63 69 70 69 65 6e 74 73 20 45 69 74 68 | .*.@param.mixed.$recipients.Eith |
67c0 | 65 72 20 61 20 63 6f 6d 6d 61 2d 73 65 70 65 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 72 65 63 | er.a.comma-seperated.list.of.rec |
67e0 | 69 70 69 65 6e 74 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 52 46 43 | ipients......*..............(RFC |
6800 | 38 32 32 20 63 6f 6d 70 6c 69 61 6e 74 29 2c 20 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 72 | 822.compliant),.or.an.array.of.r |
6820 | 65 63 69 70 69 65 6e 74 73 2c 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 | ecipients,......*..............e |
6840 | 61 63 68 20 52 46 43 38 32 32 20 76 61 6c 69 64 2e 20 54 68 69 73 20 6d 61 79 20 63 6f 6e 74 61 | ach.RFC822.valid..This.may.conta |
6860 | 69 6e 20 72 65 63 69 70 69 65 6e 74 73 20 6e 6f 74 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 | in.recipients.not......*........ |
6880 | 20 20 20 20 20 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 73 2c 20 | ......specified.in.the.headers,. |
68a0 | 66 6f 72 20 42 63 63 3a 2c 20 72 65 73 65 6e 64 69 6e 67 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | for.Bcc:,.resending......*...... |
68c0 | 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 73 2c 20 65 74 63 2e 0a 20 20 20 20 20 2a 0a 20 20 | ........messages,.etc.......*... |
68e0 | 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 68 65 61 64 65 72 73 20 54 68 65 20 61 | ...*.@param.array.$headers.The.a |
6900 | 72 72 61 79 20 6f 66 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 74 68 65 | rray.of.headers.to.send.with.the |
6920 | 20 6d 61 69 6c 2c 20 69 6e 20 61 6e 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .mail,.in.an......*............. |
6940 | 20 61 73 73 6f 63 69 61 74 69 76 65 20 61 72 72 61 79 2c 20 77 68 65 72 65 20 74 68 65 20 61 72 | .associative.array,.where.the.ar |
6960 | 72 61 79 20 6b 65 79 20 69 73 20 74 68 65 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 | ray.key.is.the......*........... |
6980 | 20 20 20 68 65 61 64 65 72 20 6e 61 6d 65 20 28 65 2e 67 2e 2c 20 27 53 75 62 6a 65 63 74 27 29 | ...header.name.(e.g.,.'Subject') |
69a0 | 2c 20 61 6e 64 20 74 68 65 20 61 72 72 61 79 20 76 61 6c 75 65 0a 20 20 20 20 20 2a 20 20 20 20 | ,.and.the.array.value......*.... |
69c0 | 20 20 20 20 20 20 20 20 20 20 69 73 20 74 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 20 28 65 | ..........is.the.header.value.(e |
69e0 | 2e 67 2e 2c 20 27 74 65 73 74 27 29 2e 20 54 68 65 20 68 65 61 64 65 72 0a 20 20 20 20 20 2a 20 | .g.,.'test')..The.header......*. |
6a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 64 75 63 65 64 20 66 72 6f 6d 20 74 68 6f 73 65 | .............produced.from.those |
6a20 | 20 76 61 6c 75 65 73 20 77 6f 75 6c 64 20 62 65 20 27 53 75 62 6a 65 63 74 3a 0a 20 20 20 20 20 | .values.would.be.'Subject:...... |
6a40 | 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 27 2e 0a 20 20 20 20 20 2a 0a 20 20 20 | *..............test'.......*.... |
6a60 | 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 62 6f 64 79 20 54 68 65 20 66 75 6c 6c | ..*.@param.string.$body.The.full |
6a80 | 20 74 65 78 74 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 62 6f 64 79 2c 20 69 6e 63 6c 75 | .text.of.the.message.body,.inclu |
6aa0 | 64 69 6e 67 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 4d 69 | ding.any......*...............Mi |
6ac0 | 6d 65 20 70 61 72 74 73 2c 20 65 74 63 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 | me.parts,.etc.......*......*.@re |
6ae0 | 74 75 72 6e 20 6d 69 78 65 64 20 52 65 74 75 72 6e 73 20 74 72 75 65 20 6f 6e 20 73 75 63 63 65 | turn.mixed.Returns.true.on.succe |
6b00 | 73 73 2c 20 6f 72 20 61 20 50 45 41 52 5f 45 72 72 6f 72 0a 20 20 20 20 20 2a 20 20 20 20 20 20 | ss,.or.a.PEAR_Error......*...... |
6b20 | 20 20 20 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 64 65 73 63 72 69 70 74 69 76 | .........containing.a.descriptiv |
6b40 | 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 6f 6e 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 | e.error.message.on......*....... |
6b60 | 20 20 20 20 20 20 20 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 | ........failure.......*.@access. |
6b80 | 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 73 65 6e 64 | public......*/.....function.send |
6ba0 | 28 24 72 65 63 69 70 69 65 6e 74 73 2c 20 24 68 65 61 64 65 72 73 2c 20 24 62 6f 64 79 29 0a 20 | ($recipients,.$headers,.$body).. |
6bc0 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 20 27 4e 65 74 2f 53 | ...{.........include_once.'Net/S |
6be0 | 4d 54 50 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 28 24 73 6d 74 70 20 3d | MTP.php';..........if.(!($smtp.= |
6c00 | 20 6e 65 77 20 4e 65 74 5f 53 4d 54 50 28 24 74 68 69 73 2d 3e 68 6f 73 74 2c 20 24 74 68 69 73 | .new.Net_SMTP($this->host,.$this |
6c20 | 2d 3e 70 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 | ->port))).{.return.new.PEAR_Erro |
6c40 | 72 28 27 75 6e 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 6e 74 69 61 74 65 20 4e 65 74 5f 53 4d 54 | r('unable.to.instantiate.Net_SMT |
6c60 | 50 20 6f 62 6a 65 63 74 27 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a | P.object');.}.........if.(PEAR:: |
6c80 | 69 73 45 72 72 6f 72 28 24 73 6d 74 70 2d 3e 63 6f 6e 6e 65 63 74 28 29 29 29 20 7b 20 72 65 74 | isError($smtp->connect())).{.ret |
6ca0 | 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 6f | urn.new.PEAR_Error('unable.to.co |
6cc0 | 6e 6e 65 63 74 20 74 6f 20 73 6d 74 70 20 73 65 72 76 65 72 20 27 20 2e 20 24 74 68 69 73 2d 3e | nnect.to.smtp.server.'...$this-> |
6ce0 | 68 6f 73 74 20 2e 20 27 3a 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 72 74 29 3b 20 7d 0a 0a 20 20 | host...':'...$this->port);.}.... |
6d00 | 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 68 29 20 7b 0a 20 20 20 20 20 20 20 | ......if.($this->auth).{........ |
6d20 | 20 20 20 20 20 24 6d 65 74 68 6f 64 20 3d 20 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e | .....$method.=.is_string($this-> |
6d40 | 61 75 74 68 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 74 68 20 3a 20 27 27 3b 0a 0a 20 20 20 20 20 | auth).?.$this->auth.:.'';....... |
6d60 | 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 73 6d 74 70 2d 3e | .......if.(PEAR::isError($smtp-> |
6d80 | 61 75 74 68 28 24 74 68 69 73 2d 3e 75 73 65 72 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 61 73 | auth($this->username,.$this->pas |
6da0 | 73 77 6f 72 64 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 | sword,.......................... |
6dc0 | 20 20 20 20 20 24 6d 65 74 68 6f 64 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....$method))).{............... |
6de0 | 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 75 6e 61 62 6c 65 20 | ..return.new.PEAR_Error('unable. |
6e00 | 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 73 6d 74 70 20 73 65 72 76 65 72 27 29 | to.authenticate.to.smtp.server') |
6e20 | 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 20 | ;.............}.........}....... |
6e40 | 20 20 20 6c 69 73 74 28 24 66 72 6f 6d 2c 20 24 74 65 78 74 5f 68 65 61 64 65 72 73 29 20 3d 20 | ...list($from,.$text_headers).=. |
6e60 | 24 74 68 69 73 2d 3e 70 72 65 70 61 72 65 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 3b | $this->prepareHeaders($headers); |
6e80 | 0a 0a 20 20 20 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 20 20 20 2a 20 53 69 6e 63 65 20 66 65 | ........../*..........*.Since.fe |
6ea0 | 77 20 4d 54 41 73 20 61 72 65 20 67 6f 69 6e 67 20 74 6f 20 61 6c 6c 6f 77 20 74 68 69 73 20 68 | w.MTAs.are.going.to.allow.this.h |
6ec0 | 65 61 64 65 72 20 74 6f 20 62 65 20 66 6f 72 67 65 64 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 | eader.to.be.forged.unless....... |
6ee0 | 20 20 20 2a 20 69 74 27 73 20 69 6e 20 74 68 65 20 4d 41 49 4c 20 46 52 4f 4d 3a 20 65 78 63 68 | ...*.it's.in.the.MAIL.FROM:.exch |
6f00 | 61 6e 67 65 2c 20 77 65 27 6c 6c 20 75 73 65 20 52 65 74 75 72 6e 2d 50 61 74 68 20 69 6e 73 74 | ange,.we'll.use.Return-Path.inst |
6f20 | 65 61 64 20 6f 66 0a 20 20 20 20 20 20 20 20 20 2a 20 46 72 6f 6d 3a 20 69 66 20 69 74 27 73 20 | ead.of..........*.From:.if.it's. |
6f40 | 73 65 74 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 21 65 6d | set...........*/.........if.(!em |
6f60 | 70 74 79 28 24 68 65 61 64 65 72 73 5b 27 52 65 74 75 72 6e 2d 50 61 74 68 27 5d 29 29 20 7b 0a | pty($headers['Return-Path'])).{. |
6f80 | 20 20 20 20 20 20 20 20 20 20 20 20 24 66 72 6f 6d 20 3d 20 24 68 65 61 64 65 72 73 5b 27 52 65 | ............$from.=.$headers['Re |
6fa0 | 74 75 72 6e 2d 50 61 74 68 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 | turn-Path'];.........}.......... |
6fc0 | 69 66 20 28 21 69 73 73 65 74 28 24 66 72 6f 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | if.(!isset($from)).{............ |
6fe0 | 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 5f 45 72 72 6f 72 28 27 4e 6f 20 66 72 6f 6d 20 | .return.new.PEAR_Error('No.from. |
7000 | 61 64 64 72 65 73 73 20 67 69 76 65 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | address.given');.........}...... |
7020 | 20 20 20 20 69 66 20 28 50 45 41 52 3a 3a 69 73 45 72 72 6f 72 28 24 73 6d 74 70 2d 3e 6d 61 69 | ....if.(PEAR::isError($smtp->mai |
7040 | 6c 46 72 6f 6d 28 24 66 72 6f 6d 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 50 45 41 52 | lFrom($from))).{.return.new.PEAR |
7060 | 5f 45 72 72 6f 72 28 27 75 6e 61 62 6c 65 20 74 6f 20 73 65 74 20 73 65 6e 64 65 72 20 74 6f 20 | _Error('unable.to.set.sender.to. |
7080 | 5b 27 20 2e 20 24 66 72 6f 6d 20 2e 20 27 5d 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 | ['...$from...']');.}..........$r |
70a0 | 65 63 69 70 69 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 52 65 63 69 70 69 65 6e | ecipients.=.$this->parseRecipien |
70c0 | 74 73 28 24 72 65 63 69 70 69 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 | ts($recipients);.........foreach |
70e0 | 28 24 72 65 63 69 70 69 65 6e 74 73 20 61 73 20 24 72 65 63 69 70 69 65 6e 74 29 20 7b 0a 20 20 | ($recipients.as.$recipient).{... |
7100 | 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 6f 72 28 24 72 65 73 | ..........if.(PEAR::isError($res |
7120 | 20 3d 20 24 73 6d 74 70 2d 3e 72 63 70 74 54 6f 28 24 72 65 63 69 70 69 65 6e 74 29 29 29 20 7b | .=.$smtp->rcptTo($recipient))).{ |
7140 | 20 72 65 74 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 | .return.new.PEAR_Error('unable.t |
7160 | 6f 20 61 64 64 20 72 65 63 69 70 69 65 6e 74 20 5b 27 20 2e 20 24 72 65 63 69 70 69 65 6e 74 20 | o.add.recipient.['...$recipient. |
7180 | 2e 20 27 5d 3a 20 27 20 2e 20 24 72 65 73 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 20 7d | ..']:.'...$res->getMessage());.} |
71a0 | 0a 20 20 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 | .........}..........if.(PEAR::is |
71c0 | 45 72 72 6f 72 28 24 73 6d 74 70 2d 3e 64 61 74 61 28 24 74 65 78 74 5f 68 65 61 64 65 72 73 20 | Error($smtp->data($text_headers. |
71e0 | 2e 20 22 5c 72 5c 6e 22 20 2e 20 24 62 6f 64 79 29 29 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 | .."\r\n"...$body))).{.return.new |
7200 | 20 50 45 41 52 5f 45 72 72 6f 72 28 27 75 6e 61 62 6c 65 20 74 6f 20 73 65 6e 64 20 64 61 74 61 | .PEAR_Error('unable.to.send.data |
7220 | 27 29 3b 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 73 6d 74 70 2d 3e 64 69 73 63 6f 6e 6e 65 63 74 | ');.}..........$smtp->disconnect |
7240 | 28 29 3b 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 7d | ();.........return.true;.....}.} |
7260 | 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ..?>............................ |
7280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
72a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
72c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
72e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
73a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
73c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
73e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7400 | 4d 61 69 6c 2d 31 2e 31 2e 30 2f 4d 61 69 6c 2f 52 46 43 38 32 32 2e 70 68 70 00 00 00 00 00 00 | Mail-1.1.0/Mail/RFC822.php...... |
7420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7460 | 00 00 00 00 31 30 30 36 34 34 20 00 20 20 31 37 35 30 20 00 20 20 31 37 35 30 20 00 20 20 20 20 | ....100644....1750....1750...... |
7480 | 20 20 37 35 31 36 30 20 20 37 36 37 32 36 34 30 31 33 35 20 20 31 30 31 30 31 20 00 00 00 00 00 | ..75160..7672640135..10101...... |
74a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
74c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
74e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
75a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
75c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
75e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7600 | 3c 3f 70 68 70 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 | <?php.//.+---------------------- |
7620 | 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 | -------------------------------- |
7640 | 2d 2d 2d 2d 2d 2d 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 | -----------------+.//.|.Copyrigh |
7660 | 74 20 28 63 29 20 32 30 30 31 2d 32 30 30 32 2c 20 52 69 63 68 61 72 64 20 48 65 79 65 73 20 20 | t.(c).2001-2002,.Richard.Heyes.. |
7680 | 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 0a | ..............................|. |
76a0 | 2f 2f 20 7c 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 20 20 20 20 20 20 20 | //.|.All.rights.reserved........ |
76c0 | 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 | ................................ |
76e0 | 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 20 20 20 20 20 | ...........|.//.|............... |
7700 | 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 | ................................ |
7720 | 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 7c 20 52 | ........................|.//.|.R |
7740 | 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 73 65 20 69 6e 20 73 6f 75 72 63 65 20 | edistribution.and.use.in.source. |
7760 | 61 6e 64 20 62 69 6e 61 72 79 20 66 6f 72 6d 73 2c 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 | and.binary.forms,.with.or.withou |
7780 | 74 20 20 20 20 7c 0a 2f 2f 20 7c 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 61 72 65 20 70 65 | t....|.//.|.modification,.are.pe |
77a0 | 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 6f 6c 6c 6f 77 | rmitted.provided.that.the.follow |
77c0 | 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 20 20 20 7c 0a 2f 2f 20 7c 20 61 72 65 20 6d 65 74 | ing.conditions....|.//.|.are.met |
77e0 | 3a 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 | :............................... |
7800 | 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 | ...............................| |
7820 | 0a 2f 2f 20 7c 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 | .//.|........................... |
7840 | 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 | ................................ |
7860 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6f 20 52 65 64 69 73 74 72 69 62 75 74 | ............|.//.|.o.Redistribut |
7880 | 69 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 | ions.of.source.code.must.retain. |
78a0 | 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 | the.above.copyright......|.//.|. |
78c0 | 20 20 6e 6f 74 69 63 65 2c 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e | ..notice,.this.list.of.condition |
78e0 | 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 2e 20 | s.and.the.following.disclaimer.. |
7900 | 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 6f 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 | ......|.//.|.o.Redistributions.i |
7920 | 6e 20 62 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 | n.binary.form.must.reproduce.the |
7940 | 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 20 20 7c 0a 2f 2f 20 7c 20 20 20 6e 6f 74 69 | .above.copyright...|.//.|...noti |
7960 | 63 65 2c 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 | ce,.this.list.of.conditions.and. |
7980 | 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 20 69 6e 20 74 68 65 20 | the.following.disclaimer.in.the. |
79a0 | 7c 0a 2f 2f 20 7c 20 20 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 2f 6f 72 20 6f 74 | |.//.|...documentation.and/or.ot |
79c0 | 68 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 65 20 | her.materials.provided.with.the. |
79e0 | 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 7c 20 0a 2f 2f 20 7c 20 6f 20 54 68 65 20 6e 61 6d 65 73 | distribution.|..//.|.o.The.names |
7a00 | 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 75 73 65 64 20 | .of.the.authors.may.not.be.used. |
7a20 | 74 6f 20 65 6e 64 6f 72 73 65 20 6f 72 20 70 72 6f 6d 6f 74 65 20 20 20 20 20 20 7c 0a 2f 2f 20 | to.endorse.or.promote......|.//. |
7a40 | 7c 20 20 20 70 72 6f 64 75 63 74 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 69 73 20 73 | |...products.derived.from.this.s |
7a60 | 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 69 63 20 70 72 69 6f 72 20 77 | oftware.without.specific.prior.w |
7a80 | 72 69 74 74 65 6e 20 20 7c 0a 2f 2f 20 7c 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 20 20 | ritten..|.//.|...permission..... |
7aa0 | 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 | ................................ |
7ac0 | 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 20 20 | .....................|.//.|..... |
7ae0 | 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 | ................................ |
7b00 | 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 | ................................ |
7b20 | 20 20 7c 0a 2f 2f 20 7c 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 | ..|.//.|.THIS.SOFTWARE.IS.PROVID |
7b40 | 45 44 20 42 59 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 | ED.BY.THE.COPYRIGHT.HOLDERS.AND. |
7b60 | 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 20 20 7c 0a 2f 2f 20 7c 20 22 41 53 20 49 53 22 20 41 4e | CONTRIBUTORS...|.//.|."AS.IS".AN |
7b80 | 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 | D.ANY.EXPRESS.OR.IMPLIED.WARRANT |
7ba0 | 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 20 20 20 20 7c 0a 2f 2f | IES,.INCLUDING,.BUT.NOT.....|.// |
7bc0 | 20 7c 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 | .|.LIMITED.TO,.THE.IMPLIED.WARRA |
7be0 | 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 | NTIES.OF.MERCHANTABILITY.AND.FIT |
7c00 | 4e 45 53 53 20 46 4f 52 20 7c 0a 2f 2f 20 7c 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 | NESS.FOR.|.//.|.A.PARTICULAR.PUR |
7c20 | 50 4f 53 45 20 41 52 45 20 44 49 53 43 4c 41 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 | POSE.ARE.DISCLAIMED..IN.NO.EVENT |
7c40 | 20 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 20 7c 0a 2f 2f 20 7c 20 4f 57 4e | .SHALL.THE.COPYRIGHT..|.//.|.OWN |
7c60 | 45 52 20 4f 52 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 | ER.OR.CONTRIBUTORS.BE.LIABLE.FOR |
7c80 | 20 41 4e 59 20 44 49 52 45 43 54 2c 20 49 4e 44 49 52 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 | .ANY.DIRECT,.INDIRECT,.INCIDENTA |
7ca0 | 4c 2c 20 7c 0a 2f 2f 20 7c 20 53 50 45 43 49 41 4c 2c 20 45 58 45 4d 50 4c 41 52 59 2c 20 4f 52 | L,.|.//.|.SPECIAL,.EXEMPLARY,.OR |
7cc0 | 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 28 49 4e 43 4c 55 44 49 4e | .CONSEQUENTIAL.DAMAGES.(INCLUDIN |
7ce0 | 47 2c 20 42 55 54 20 4e 4f 54 20 20 20 20 20 20 7c 0a 2f 2f 20 7c 20 4c 49 4d 49 54 45 44 20 54 | G,.BUT.NOT......|.//.|.LIMITED.T |
7d00 | 4f 2c 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f | O,.PROCUREMENT.OF.SUBSTITUTE.GOO |
7d20 | 44 53 20 4f 52 20 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 7c 0a 2f | DS.OR.SERVICES;.LOSS.OF.USE,.|./ |
7d40 | 2f 20 7c 20 44 41 54 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 | /.|.DATA,.OR.PROFITS;.OR.BUSINES |
7d60 | 53 20 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 20 43 41 55 53 45 44 20 41 | S.INTERRUPTION).HOWEVER.CAUSED.A |
7d80 | 4e 44 20 4f 4e 20 41 4e 59 20 7c 0a 2f 2f 20 7c 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 | ND.ON.ANY.|.//.|.THEORY.OF.LIABI |
7da0 | 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 | LITY,.WHETHER.IN.CONTRACT,.STRIC |
7dc0 | 54 20 4c 49 41 42 49 4c 49 54 59 2c 20 4f 52 20 54 4f 52 54 20 20 20 7c 0a 2f 2f 20 7c 20 28 49 | T.LIABILITY,.OR.TORT...|.//.|.(I |
7de0 | 4e 43 4c 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 | NCLUDING.NEGLIGENCE.OR.OTHERWISE |
7e00 | 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 | ).ARISING.IN.ANY.WAY.OUT.OF.THE. |
7e20 | 55 53 45 20 7c 0a 2f 2f 20 7c 20 4f 46 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 2c 20 45 56 45 | USE.|.//.|.OF.THIS.SOFTWARE,.EVE |
7e40 | 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 | N.IF.ADVISED.OF.THE.POSSIBILITY. |
7e60 | 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e 20 20 7c 0a 2f 2f 20 7c 20 20 20 20 20 20 20 20 20 | OF.SUCH.DAMAGE...|.//.|......... |
7e80 | 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 | ................................ |
7ea0 | 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 0a | ..............................|. |
7ec0 | 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 2d | //.+---------------------------- |
7ee0 | 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 | -------------------------------- |
7f00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 2f 2f 20 7c 20 41 75 74 68 6f 72 73 3a 20 52 69 63 68 61 | -----------+.//.|.Authors:.Richa |
7f20 | 72 64 20 48 65 79 65 73 20 3c 72 69 63 68 61 72 64 40 70 68 70 67 75 72 75 2e 6f 72 67 3e 20 20 | rd.Heyes.<richard@phpguru.org>.. |
7f40 | 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 7c 20 20 | ........................|.//.|.. |
7f60 | 20 20 20 20 20 20 20 20 43 68 75 63 6b 20 48 61 67 65 6e 62 75 63 68 20 3c 63 68 75 63 6b 40 68 | ........Chuck.Hagenbuch.<chuck@h |
7f80 | 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 20 20 20 20 20 20 20 | orde.org>....................... |
7fa0 | 20 20 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 | .....|.//.+--------------------- |
7fc0 | 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 | -------------------------------- |
7fe0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 0a 2f 2a 2a 0a 2a 20 52 46 43 20 38 | ------------------+../**.*.RFC.8 |
8000 | 32 32 20 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 6c 69 73 74 20 76 61 6c 69 64 61 74 69 6f 6e | 22.Email.address.list.validation |
8020 | 20 55 74 69 6c 69 74 79 0a 2a 0a 2a 20 57 68 61 74 20 69 73 20 69 74 3f 0a 2a 0a 2a 20 54 68 69 | .Utility.*.*.What.is.it?.*.*.Thi |
8040 | 73 20 63 6c 61 73 73 20 77 69 6c 6c 20 74 61 6b 65 20 61 6e 20 61 64 64 72 65 73 73 20 73 74 72 | s.class.will.take.an.address.str |
8060 | 69 6e 67 2c 20 61 6e 64 20 70 61 72 73 65 20 69 74 20 69 6e 74 6f 20 69 74 27 73 20 63 6f 6e 73 | ing,.and.parse.it.into.it's.cons |
8080 | 69 74 75 65 6e 74 0a 2a 20 70 61 72 74 73 2c 20 62 65 20 74 68 61 74 20 65 69 74 68 65 72 20 61 | ituent.*.parts,.be.that.either.a |
80a0 | 64 64 72 65 73 73 65 73 2c 20 67 72 6f 75 70 73 2c 20 6f 72 20 63 6f 6d 62 69 6e 61 74 69 6f 6e | ddresses,.groups,.or.combination |
80c0 | 73 2e 20 4e 65 73 74 65 64 20 67 72 6f 75 70 73 0a 2a 20 61 72 65 20 6e 6f 74 20 73 75 70 70 6f | s..Nested.groups.*.are.not.suppo |
80e0 | 72 74 65 64 2e 20 54 68 65 20 73 74 72 75 63 74 75 72 65 20 69 74 20 72 65 74 75 72 6e 73 20 69 | rted..The.structure.it.returns.i |
8100 | 73 20 70 72 65 74 74 79 20 73 74 72 61 69 67 68 74 20 66 6f 72 77 61 72 64 2c 0a 2a 20 61 6e 64 | s.pretty.straight.forward,.*.and |
8120 | 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 61 74 20 70 72 6f 76 69 64 65 64 20 62 79 20 | .is.similar.to.that.provided.by. |
8140 | 74 68 65 20 69 6d 61 70 5f 72 66 63 38 32 32 5f 70 61 72 73 65 5f 61 64 72 6c 69 73 74 28 29 2e | the.imap_rfc822_parse_adrlist(). |
8160 | 20 55 73 65 0a 2a 20 70 72 69 6e 74 5f 72 28 29 20 74 6f 20 76 69 65 77 20 74 68 65 20 73 74 72 | .Use.*.print_r().to.view.the.str |
8180 | 75 63 74 75 72 65 2e 0a 2a 0a 2a 20 48 6f 77 20 64 6f 20 49 20 75 73 65 20 69 74 3f 0a 2a 0a 2a | ucture..*.*.How.do.I.use.it?.*.* |
81a0 | 20 24 61 64 64 72 65 73 73 5f 73 74 72 69 6e 67 20 3d 20 27 4d 79 20 47 72 6f 75 70 3a 20 22 52 | .$address_string.=.'My.Group:."R |
81c0 | 69 63 68 61 72 64 22 20 3c 72 69 63 68 61 72 64 40 6c 6f 63 61 6c 68 6f 73 74 3e 20 28 41 20 63 | ichard".<richard@localhost>.(A.c |
81e0 | 6f 6d 6d 65 6e 74 29 2c 20 74 65 64 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 20 28 54 65 64 20 42 6c | omment),.ted@example.com.(Ted.Bl |
8200 | 6f 67 67 73 29 2c 20 42 61 72 6e 65 79 3b 27 3b 0a 2a 20 24 73 74 72 75 63 74 75 72 65 20 3d 20 | oggs),.Barney;';.*.$structure.=. |
8220 | 4d 61 69 6c 5f 52 46 43 38 32 32 3a 3a 70 61 72 73 65 41 64 64 72 65 73 73 4c 69 73 74 28 24 61 | Mail_RFC822::parseAddressList($a |
8240 | 64 64 72 65 73 73 5f 73 74 72 69 6e 67 2c 20 27 65 78 61 6d 70 6c 65 2e 63 6f 6d 27 2c 20 74 72 | ddress_string,.'example.com',.tr |
8260 | 75 65 29 0a 2a 20 70 72 69 6e 74 5f 72 28 24 73 74 72 75 63 74 75 72 65 29 3b 0a 2a 0a 2a 20 40 | ue).*.print_r($structure);.*.*.@ |
8280 | 61 75 74 68 6f 72 20 20 52 69 63 68 61 72 64 20 48 65 79 65 73 20 3c 72 69 63 68 61 72 64 40 70 | author..Richard.Heyes.<richard@p |
82a0 | 68 70 67 75 72 75 2e 6f 72 67 3e 0a 2a 20 40 61 75 74 68 6f 72 20 20 43 68 75 63 6b 20 48 61 67 | hpguru.org>.*.@author..Chuck.Hag |
82c0 | 65 6e 62 75 63 68 20 3c 63 68 75 63 6b 40 68 6f 72 64 65 2e 6f 72 67 3e 0a 2a 20 40 76 65 72 73 | enbuch.<chuck@horde.org>.*.@vers |
82e0 | 69 6f 6e 20 24 52 65 76 69 73 69 6f 6e 3a 20 31 2e 37 20 24 0a 2a 20 40 6c 69 63 65 6e 73 65 20 | ion.$Revision:.1.7.$.*.@license. |
8300 | 42 53 44 0a 2a 20 40 70 61 63 6b 61 67 65 20 4d 61 69 6c 0a 2a 2f 0a 0a 63 6c 61 73 73 20 4d 61 | BSD.*.@package.Mail.*/..class.Ma |
8320 | 69 6c 5f 52 46 43 38 32 32 20 7b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 | il_RFC822.{....../**......*.The. |
8340 | 61 64 64 72 65 73 73 20 62 65 69 6e 67 20 70 61 72 73 65 64 20 62 79 20 74 68 65 20 52 46 43 38 | address.being.parsed.by.the.RFC8 |
8360 | 32 32 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 20 24 61 | 22.object.......*.@var.string.$a |
8380 | 64 64 72 65 73 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 61 64 64 72 65 73 73 20 | ddress......*/.....var.$address. |
83a0 | 3d 20 27 27 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 64 65 66 61 75 6c | =.'';....../**......*.The.defaul |
83c0 | 74 20 64 6f 6d 61 69 6e 20 74 6f 20 75 73 65 20 66 6f 72 20 75 6e 71 75 61 6c 69 66 69 65 64 20 | t.domain.to.use.for.unqualified. |
83e0 | 61 64 64 72 65 73 73 65 73 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 20 24 64 | addresses.......*.@var.string.$d |
8400 | 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 64 | efault_domain......*/.....var.$d |
8420 | 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 3d 20 27 6c 6f 63 61 6c 68 6f 73 74 27 3b 0a 0a 20 20 | efault_domain.=.'localhost';.... |
8440 | 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 68 6f 75 6c 64 20 77 65 20 72 65 74 75 72 6e 20 61 20 | ../**......*.Should.we.return.a. |
8460 | 6e 65 73 74 65 64 20 61 72 72 61 79 20 73 68 6f 77 69 6e 67 20 67 72 6f 75 70 73 2c 20 6f 72 20 | nested.array.showing.groups,.or. |
8480 | 66 6c 61 74 74 65 6e 20 65 76 65 72 79 74 68 69 6e 67 3f 0a 20 20 20 20 20 2a 20 40 76 61 72 20 | flatten.everything?......*.@var. |
84a0 | 62 6f 6f 6c 65 61 6e 20 24 6e 65 73 74 47 72 6f 75 70 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 | boolean.$nestGroups......*/..... |
84c0 | 76 61 72 20 24 6e 65 73 74 47 72 6f 75 70 73 20 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 2f 2a 2a | var.$nestGroups.=.true;....../** |
84e0 | 0a 20 20 20 20 20 2a 20 57 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 6f 20 76 61 6c 69 64 61 | ......*.Whether.or.not.to.valida |
8500 | 74 65 20 61 74 6f 6d 73 20 66 6f 72 20 6e 6f 6e 2d 61 73 63 69 69 20 63 68 61 72 61 63 74 65 72 | te.atoms.for.non-ascii.character |
8520 | 73 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 62 6f 6f 6c 65 61 6e 20 24 76 61 6c 69 64 61 74 65 | s.......*.@var.boolean.$validate |
8540 | 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 76 61 6c 69 64 61 74 65 20 3d 20 74 72 75 | ......*/.....var.$validate.=.tru |
8560 | 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 61 72 72 61 79 20 6f 66 20 | e;....../**......*.The.array.of. |
8580 | 72 61 77 20 61 64 64 72 65 73 73 65 73 20 62 75 69 6c 74 20 75 70 20 61 73 20 77 65 20 70 61 72 | raw.addresses.built.up.as.we.par |
85a0 | 73 65 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 20 24 61 64 64 72 65 73 73 65 73 | se.......*.@var.array.$addresses |
85c0 | 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 61 64 64 72 65 73 73 65 73 20 3d 20 61 72 | ......*/.....var.$addresses.=.ar |
85e0 | 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 66 69 6e 61 6c | ray();....../**......*.The.final |
8600 | 20 61 72 72 61 79 20 6f 66 20 70 61 72 73 65 64 20 61 64 64 72 65 73 73 20 69 6e 66 6f 72 6d 61 | .array.of.parsed.address.informa |
8620 | 74 69 6f 6e 20 74 68 61 74 20 77 65 20 62 75 69 6c 64 20 75 70 2e 0a 20 20 20 20 20 2a 20 40 76 | tion.that.we.build.up.......*.@v |
8640 | 61 72 20 61 72 72 61 79 20 24 73 74 72 75 63 74 75 72 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 | ar.array.$structure......*/..... |
8660 | 76 61 72 20 24 73 74 72 75 63 74 75 72 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f | var.$structure.=.array();....../ |
8680 | 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20 63 75 72 72 65 6e 74 20 65 72 72 6f 72 20 6d 65 73 73 | **......*.The.current.error.mess |
86a0 | 61 67 65 2c 20 69 66 20 61 6e 79 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 20 | age,.if.any.......*.@var.string. |
86c0 | 24 65 72 72 6f 72 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 65 72 72 6f 72 20 3d 20 | $error......*/.....var.$error.=. |
86e0 | 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 41 6e 20 69 6e 74 65 72 6e 61 | null;....../**......*.An.interna |
8700 | 6c 20 63 6f 75 6e 74 65 72 2f 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 2a 20 40 76 61 72 20 69 | l.counter/pointer.......*.@var.i |
8720 | 6e 74 65 67 65 72 20 24 69 6e 64 65 78 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 69 | nteger.$index......*/.....var.$i |
8740 | 6e 64 65 78 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 | ndex.=.null;....../**......*.The |
8760 | 20 6e 75 6d 62 65 72 20 6f 66 20 67 72 6f 75 70 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e | .number.of.groups.that.have.been |
8780 | 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 61 64 64 72 65 73 73 20 6c 69 73 74 2e 0a 20 20 20 20 | .found.in.the.address.list...... |
87a0 | 20 2a 20 40 76 61 72 20 69 6e 74 65 67 65 72 20 24 6e 75 6d 5f 67 72 6f 75 70 73 0a 20 20 20 20 | .*.@var.integer.$num_groups..... |
87c0 | 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 61 | .*.@access.public......*/.....va |
87e0 | 72 20 24 6e 75 6d 5f 67 72 6f 75 70 73 20 3d 20 30 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 | r.$num_groups.=.0;....../**..... |
8800 | 20 2a 20 41 20 76 61 72 69 61 62 6c 65 20 73 6f 20 74 68 61 74 20 77 65 20 63 61 6e 20 74 65 6c | .*.A.variable.so.that.we.can.tel |
8820 | 6c 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 77 65 27 72 65 20 69 6e 73 69 64 65 20 61 0a | l.whether.or.not.we're.inside.a. |
8840 | 20 20 20 20 20 2a 20 4d 61 69 6c 5f 52 46 43 38 32 32 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 | .....*.Mail_RFC822.object....... |
8860 | 2a 20 40 76 61 72 20 62 6f 6f 6c 65 61 6e 20 24 6d 61 69 6c 52 46 43 38 32 32 0a 20 20 20 20 20 | *.@var.boolean.$mailRFC822...... |
8880 | 2a 2f 0a 20 20 20 20 76 61 72 20 24 6d 61 69 6c 52 46 43 38 32 32 20 3d 20 74 72 75 65 3b 0a 20 | */.....var.$mailRFC822.=.true;.. |
88a0 | 20 20 20 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 41 20 6c 69 6d 69 74 20 61 66 74 65 72 20 | ......../**.....*.A.limit.after. |
88c0 | 77 68 69 63 68 20 70 72 6f 63 65 73 73 69 6e 67 20 73 74 6f 70 73 0a 20 20 20 20 2a 20 40 76 61 | which.processing.stops.....*.@va |
88e0 | 72 20 69 6e 74 20 24 6c 69 6d 69 74 0a 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 24 6c 69 6d | r.int.$limit.....*/.....var.$lim |
8900 | 69 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 65 74 73 | it.=.null;......./**......*.Sets |
8920 | 20 75 70 20 74 68 65 20 6f 62 6a 65 63 74 2e 20 54 68 65 20 61 64 64 72 65 73 73 20 6d 75 73 74 | .up.the.object..The.address.must |
8940 | 20 65 69 74 68 65 72 20 62 65 20 73 65 74 20 68 65 72 65 20 6f 72 20 77 68 65 6e 0a 20 20 20 20 | .either.be.set.here.or.when..... |
8960 | 20 2a 20 63 61 6c 6c 69 6e 67 20 70 61 72 73 65 41 64 64 72 65 73 73 4c 69 73 74 28 29 2e 20 4f | .*.calling.parseAddressList()..O |
8980 | 6e 65 20 6f 72 20 74 68 65 20 6f 74 68 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 | ne.or.the.other.......*......*.@ |
89a0 | 61 63 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 | access.public......*.@param.stri |
89c0 | 6e 67 20 20 24 61 64 64 72 65 73 73 20 20 20 20 20 20 20 20 20 54 68 65 20 61 64 64 72 65 73 73 | ng..$address.........The.address |
89e0 | 28 65 73 29 20 74 6f 20 76 61 6c 69 64 61 74 65 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 | (es).to.validate.......*.@param. |
8a00 | 73 74 72 69 6e 67 20 20 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 20 44 65 66 61 75 6c 74 | string..$default_domain..Default |
8a20 | 20 64 6f 6d 61 69 6e 2f 68 6f 73 74 20 65 74 63 2e 20 49 66 20 6e 6f 74 20 73 75 70 70 6c 69 65 | .domain/host.etc..If.not.supplie |
8a40 | 64 2c 20 77 69 6c 6c 20 62 65 20 73 65 74 20 74 6f 20 6c 6f 63 61 6c 68 6f 73 74 2e 0a 20 20 20 | d,.will.be.set.to.localhost..... |
8a60 | 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e 20 24 6e 65 73 74 5f 67 72 6f 75 70 73 20 | ..*.@param.boolean.$nest_groups. |
8a80 | 20 20 20 20 57 68 65 74 68 65 72 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 73 74 72 75 63 74 | ....Whether.to.return.the.struct |
8aa0 | 75 72 65 20 77 69 74 68 20 67 72 6f 75 70 73 20 6e 65 73 74 65 64 20 66 6f 72 20 65 61 73 69 65 | ure.with.groups.nested.for.easie |
8ac0 | 72 20 76 69 65 77 69 6e 67 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e | r.viewing.......*.@param.boolean |
8ae0 | 20 24 76 61 6c 69 64 61 74 65 20 20 20 20 20 20 20 20 57 68 65 74 68 65 72 20 74 6f 20 76 61 6c | .$validate........Whether.to.val |
8b00 | 69 64 61 74 65 20 61 74 6f 6d 73 2e 20 54 75 72 6e 20 74 68 69 73 20 6f 66 66 20 69 66 20 79 6f | idate.atoms..Turn.this.off.if.yo |
8b20 | 75 20 6e 65 65 64 20 74 6f 20 72 75 6e 20 61 64 64 72 65 73 73 65 73 20 74 68 72 6f 75 67 68 20 | u.need.to.run.addresses.through. |
8b40 | 62 65 66 6f 72 65 20 65 6e 63 6f 64 69 6e 67 20 74 68 65 20 70 65 72 73 6f 6e 61 6c 20 6e 61 6d | before.encoding.the.personal.nam |
8b60 | 65 73 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a | es,.for.instance.......*.......* |
8b80 | 20 40 72 65 74 75 72 6e 20 6f 62 6a 65 63 74 20 4d 61 69 6c 5f 52 46 43 38 32 32 20 41 20 6e 65 | .@return.object.Mail_RFC822.A.ne |
8ba0 | 77 20 4d 61 69 6c 5f 52 46 43 38 32 32 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 | w.Mail_RFC822.object.......*/... |
8bc0 | 20 20 66 75 6e 63 74 69 6f 6e 20 4d 61 69 6c 5f 52 46 43 38 32 32 28 24 61 64 64 72 65 73 73 20 | ..function.Mail_RFC822($address. |
8be0 | 3d 20 6e 75 6c 6c 2c 20 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 3d 20 6e 75 6c 6c 2c 20 | =.null,.$default_domain.=.null,. |
8c00 | 24 6e 65 73 74 5f 67 72 6f 75 70 73 20 3d 20 6e 75 6c 6c 2c 20 24 76 61 6c 69 64 61 74 65 20 3d | $nest_groups.=.null,.$validate.= |
8c20 | 20 6e 75 6c 6c 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 | .null,.$limit.=.null).....{..... |
8c40 | 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 61 64 64 72 65 73 73 29 29 20 20 20 20 20 20 20 20 | ....if.(isset($address))........ |
8c60 | 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 20 20 20 20 20 20 20 20 3d 20 24 61 64 64 72 65 73 73 | $this->address........=.$address |
8c80 | 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 65 66 61 75 6c 74 5f 64 6f 6d | ;.........if.(isset($default_dom |
8ca0 | 61 69 6e 29 29 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 3d 20 24 64 | ain)).$this->default_domain.=.$d |
8cc0 | 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 | efault_domain;.........if.(isset |
8ce0 | 28 24 6e 65 73 74 5f 67 72 6f 75 70 73 29 29 20 20 20 20 24 74 68 69 73 2d 3e 6e 65 73 74 47 72 | ($nest_groups))....$this->nestGr |
8d00 | 6f 75 70 73 20 20 20 20 20 3d 20 24 6e 65 73 74 5f 67 72 6f 75 70 73 3b 0a 20 20 20 20 20 20 20 | oups.....=.$nest_groups;........ |
8d20 | 20 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 69 64 61 74 65 29 29 20 20 20 20 20 20 20 24 74 68 | .if.(isset($validate)).......$th |
8d40 | 69 73 2d 3e 76 61 6c 69 64 61 74 65 20 20 20 20 20 20 20 3d 20 24 76 61 6c 69 64 61 74 65 3b 0a | is->validate.......=.$validate;. |
8d60 | 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6c 69 6d 69 74 29 29 20 20 20 20 20 20 | ........if.(isset($limit))...... |
8d80 | 20 20 20 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 20 20 20 20 20 20 20 20 20 20 3d 20 24 6c 69 6d | ....$this->limit..........=.$lim |
8da0 | 69 74 3b 0a 20 20 20 20 7d 0a 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 74 61 72 74 | it;.....}......./**......*.Start |
8dc0 | 73 20 74 68 65 20 77 68 6f 6c 65 20 70 72 6f 63 65 73 73 2e 20 54 68 65 20 61 64 64 72 65 73 73 | s.the.whole.process..The.address |
8de0 | 20 6d 75 73 74 20 65 69 74 68 65 72 20 62 65 20 73 65 74 20 68 65 72 65 0a 20 20 20 20 20 2a 20 | .must.either.be.set.here......*. |
8e00 | 6f 72 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 2e 20 4f 6e 65 | or.when.creating.the.object..One |
8e20 | 20 6f 72 20 74 68 65 20 6f 74 68 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 61 63 | .or.the.other.......*......*.@ac |
8e40 | 63 65 73 73 20 70 75 62 6c 69 63 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 | cess.public......*.@param.string |
8e60 | 20 20 24 61 64 64 72 65 73 73 20 20 20 20 20 20 20 20 20 54 68 65 20 61 64 64 72 65 73 73 28 65 | ..$address.........The.address(e |
8e80 | 73 29 20 74 6f 20 76 61 6c 69 64 61 74 65 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 | s).to.validate.......*.@param.st |
8ea0 | 72 69 6e 67 20 20 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 20 44 65 66 61 75 6c 74 20 64 | ring..$default_domain..Default.d |
8ec0 | 6f 6d 61 69 6e 2f 68 6f 73 74 20 65 74 63 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f | omain/host.etc.......*.@param.bo |
8ee0 | 6f 6c 65 61 6e 20 24 6e 65 73 74 5f 67 72 6f 75 70 73 20 20 20 20 20 57 68 65 74 68 65 72 20 74 | olean.$nest_groups.....Whether.t |
8f00 | 6f 20 72 65 74 75 72 6e 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 77 69 74 68 20 67 72 6f 75 | o.return.the.structure.with.grou |
8f20 | 70 73 20 6e 65 73 74 65 64 20 66 6f 72 20 65 61 73 69 65 72 20 76 69 65 77 69 6e 67 2e 0a 20 20 | ps.nested.for.easier.viewing.... |
8f40 | 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 65 61 6e 20 24 76 61 6c 69 64 61 74 65 20 20 20 | ...*.@param.boolean.$validate... |
8f60 | 20 20 20 20 20 57 68 65 74 68 65 72 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 74 6f 6d 73 2e 20 | .....Whether.to.validate.atoms.. |
8f80 | 54 75 72 6e 20 74 68 69 73 20 6f 66 66 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 72 75 6e | Turn.this.off.if.you.need.to.run |
8fa0 | 20 61 64 64 72 65 73 73 65 73 20 74 68 72 6f 75 67 68 20 62 65 66 6f 72 65 20 65 6e 63 6f 64 69 | .addresses.through.before.encodi |
8fc0 | 6e 67 20 74 68 65 20 70 65 72 73 6f 6e 61 6c 20 6e 61 6d 65 73 2c 20 66 6f 72 20 69 6e 73 74 61 | ng.the.personal.names,.for.insta |
8fe0 | 6e 63 65 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 | nce.......*.......*.@return.arra |
9000 | 79 20 41 20 73 74 72 75 63 74 75 72 65 64 20 61 72 72 61 79 20 6f 66 20 61 64 64 72 65 73 73 65 | y.A.structured.array.of.addresse |
9020 | 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 64 64 | s.......*/.....function.parseAdd |
9040 | 72 65 73 73 4c 69 73 74 28 24 61 64 64 72 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 66 61 75 | ressList($address.=.null,.$defau |
9060 | 6c 74 5f 64 6f 6d 61 69 6e 20 3d 20 6e 75 6c 6c 2c 20 24 6e 65 73 74 5f 67 72 6f 75 70 73 20 3d | lt_domain.=.null,.$nest_groups.= |
9080 | 20 6e 75 6c 6c 2c 20 24 76 61 6c 69 64 61 74 65 20 3d 20 6e 75 6c 6c 2c 20 24 6c 69 6d 69 74 20 | .null,.$validate.=.null,.$limit. |
90a0 | 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 7b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 | =.null).....{..........if.(!isse |
90c0 | 74 28 24 74 68 69 73 2d 3e 6d 61 69 6c 52 46 43 38 32 32 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | t($this->mailRFC822)).{......... |
90e0 | 20 20 20 20 24 6f 62 6a 20 3d 20 6e 65 77 20 4d 61 69 6c 5f 52 46 43 38 32 32 28 24 61 64 64 72 | ....$obj.=.new.Mail_RFC822($addr |
9100 | 65 73 73 2c 20 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 2c 20 24 6e 65 73 74 5f 67 72 6f 75 | ess,.$default_domain,.$nest_grou |
9120 | 70 73 2c 20 24 76 61 6c 69 64 61 74 65 2c 20 24 6c 69 6d 69 74 29 3b 0a 20 20 20 20 20 20 20 20 | ps,.$validate,.$limit);......... |
9140 | 20 20 20 20 72 65 74 75 72 6e 20 24 6f 62 6a 2d 3e 70 61 72 73 65 41 64 64 72 65 73 73 4c 69 73 | ....return.$obj->parseAddressLis |
9160 | 74 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 | t();.........}..........if.(isse |
9180 | 74 28 24 61 64 64 72 65 73 73 29 29 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 72 65 | t($address))........$this->addre |
91a0 | 73 73 20 20 20 20 20 20 20 20 3d 20 24 61 64 64 72 65 73 73 3b 0a 20 20 20 20 20 20 20 20 69 66 | ss........=.$address;.........if |
91c0 | 20 28 69 73 73 65 74 28 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 29 29 20 24 74 68 69 73 2d | .(isset($default_domain)).$this- |
91e0 | 3e 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 6e 20 3d 20 24 64 65 66 61 75 6c 74 5f 64 6f 6d 61 69 | >default_domain.=.$default_domai |
9200 | 6e 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 6e 65 73 74 5f 67 72 6f 75 70 | n;.........if.(isset($nest_group |
9220 | 73 29 29 20 20 20 20 24 74 68 69 73 2d 3e 6e 65 73 74 47 72 6f 75 70 73 20 20 20 20 20 3d 20 24 | s))....$this->nestGroups.....=.$ |
9240 | 6e 65 73 74 5f 67 72 6f 75 70 73 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 | nest_groups;.........if.(isset($ |
9260 | 76 61 6c 69 64 61 74 65 29 29 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 | validate)).......$this->validate |
9280 | 20 20 20 20 20 20 20 3d 20 24 76 61 6c 69 64 61 74 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 | .......=.$validate;.........if.( |
92a0 | 69 73 73 65 74 28 24 6c 69 6d 69 74 29 29 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6c | isset($limit))..........$this->l |
92c0 | 69 6d 69 74 20 20 20 20 20 20 20 20 20 20 3d 20 24 6c 69 6d 69 74 3b 0a 0a 20 20 20 20 20 20 20 | imit..........=.$limit;......... |
92e0 | 20 24 74 68 69 73 2d 3e 73 74 72 75 63 74 75 72 65 20 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 | .$this->structure..=.array();... |
9300 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 65 73 20 20 3d 20 61 72 72 61 79 28 | ......$this->addresses..=.array( |
9320 | 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 20 20 20 20 20 3d 20 6e | );.........$this->error......=.n |
9340 | 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 69 6e 64 65 78 20 20 20 20 20 20 3d | ull;.........$this->index......= |
9360 | 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 61 64 | .null;..........while.($this->ad |
9380 | 64 72 65 73 73 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 41 64 64 72 65 73 73 65 73 28 24 | dress.=.$this->_splitAddresses($ |
93a0 | 74 68 69 73 2d 3e 61 64 64 72 65 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f | this->address)).{.............co |
93c0 | 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 | ntinue;.........}............... |
93e0 | 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 20 3d 3d 3d 20 66 61 6c 73 65 20 | ...if.($this->address.===.false. |
9400 | 7c 7c 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 | ||.isset($this->error)).{....... |
9420 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 72 72 6f 72 28 24 | ......return.$this->raiseError($ |
9440 | 74 68 69 73 2d 3e 65 72 72 6f 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 | this->error);.........}......... |
9460 | 20 2f 2f 20 4c 6f 6f 70 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 74 68 65 20 61 64 64 72 65 73 73 | .//.Loop.through.all.the.address |
9480 | 65 73 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 | es.........for.($i.=.0;.$i.<.cou |
94a0 | 6e 74 28 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 65 73 29 3b 20 24 69 2b 2b 29 7b 0a 0a 20 20 | nt($this->addresses);.$i++){.... |
94c0 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 24 72 65 74 75 72 6e 20 3d 20 24 74 68 69 73 2d 3e | ..........if.(($return.=.$this-> |
94e0 | 5f 76 61 6c 69 64 61 74 65 41 64 64 72 65 73 73 28 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 65 | _validateAddress($this->addresse |
9500 | 73 5b 24 69 5d 29 29 20 3d 3d 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s[$i])).===.false............... |
9520 | 20 20 7c 7c 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 29 29 20 7b 0a 20 20 20 20 | ..||.isset($this->error)).{..... |
9540 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 61 69 73 65 45 | ............return.$this->raiseE |
9560 | 72 72 6f 72 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | rror($this->error);............. |
9580 | 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 | }..........................if.(! |
95a0 | 24 74 68 69 73 2d 3e 6e 65 73 74 47 72 6f 75 70 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | $this->nestGroups).{............ |
95c0 | 20 20 20 20 20 24 74 68 69 73 2d 3e 73 74 72 75 63 74 75 72 65 20 3d 20 61 72 72 61 79 5f 6d 65 | .....$this->structure.=.array_me |
95e0 | 72 67 65 28 24 74 68 69 73 2d 3e 73 74 72 75 63 74 75 72 65 2c 20 24 72 65 74 75 72 6e 29 3b 0a | rge($this->structure,.$return);. |
9600 | 20 20 20 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 | ............}.else.{............ |
9620 | 20 20 20 20 20 24 74 68 69 73 2d 3e 73 74 72 75 63 74 75 72 65 5b 5d 20 3d 20 24 72 65 74 75 72 | .....$this->structure[].=.$retur |
9640 | 6e 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 | n;.............}.........}...... |
9660 | 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 75 63 74 75 72 65 3b 0a 20 20 20 | ....return.$this->structure;.... |
9680 | 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 70 6c 69 74 73 20 61 6e 20 61 64 64 | .}....../**......*.Splits.an.add |
96a0 | 72 65 73 73 20 69 6e 74 6f 20 73 65 70 65 72 61 74 65 20 61 64 64 72 65 73 73 65 73 2e 0a 20 20 | ress.into.seperate.addresses.... |
96c0 | 20 20 20 2a 20 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 | ...*.......*.@access.private.... |
96e0 | 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 64 64 72 65 73 73 20 54 68 65 20 61 | ..*.@param.string.$address.The.a |
9700 | 64 64 72 65 73 73 65 73 20 74 6f 20 73 70 6c 69 74 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 | ddresses.to.split.......*.@retur |
9720 | 6e 20 62 6f 6f 6c 65 61 6e 20 53 75 63 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e 0a 20 20 | n.boolean.Success.or.failure.... |
9740 | 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 73 70 6c 69 74 41 64 64 72 65 73 73 | ...*/.....function._splitAddress |
9760 | 65 73 28 24 61 64 64 72 65 73 73 29 0a 20 20 20 20 7b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 | es($address).....{..........if.( |
9780 | 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 6c 69 6d 69 74 29 20 41 4e 44 20 63 6f 75 6e 74 28 24 | !empty($this->limit).AND.count($ |
97a0 | 74 68 69 73 2d 3e 61 64 64 72 65 73 73 65 73 29 20 3d 3d 20 24 74 68 69 73 2d 3e 6c 69 6d 69 74 | this->addresses).==.$this->limit |
97c0 | 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 27 27 3b 0a 20 20 20 20 20 | ).{.............return.'';...... |
97e0 | 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 5f 69 73 47 72 6f 75 | ...}..........if.($this->_isGrou |
9800 | 70 28 24 61 64 64 72 65 73 73 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 | p($address).&&.!isset($this->err |
9820 | 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 70 6c 69 74 5f 63 68 61 72 20 3d | or)).{.............$split_char.= |
9840 | 20 27 3b 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 73 5f 67 72 6f 75 70 20 20 20 3d 20 | .';';.............$is_group...=. |
9860 | 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 | true;.........}.elseif.(!isset($ |
9880 | 74 68 69 73 2d 3e 65 72 72 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 70 6c | this->error)).{.............$spl |
98a0 | 69 74 5f 63 68 61 72 20 3d 20 27 2c 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 73 5f 67 | it_char.=.',';.............$is_g |
98c0 | 72 6f 75 70 20 20 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 | roup...=.false;.........}.elseif |
98e0 | 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 20 | .(isset($this->error)).{........ |
9900 | 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 | .....return.false;.........}.... |
9920 | 20 20 20 20 20 20 2f 2f 20 53 70 6c 69 74 20 74 68 65 20 73 74 72 69 6e 67 20 62 61 73 65 64 20 | ......//.Split.the.string.based. |
9940 | 6f 6e 20 74 68 65 20 61 62 6f 76 65 20 74 65 6e 20 6f 72 20 73 6f 20 6c 69 6e 65 73 2e 0a 20 20 | on.the.above.ten.or.so.lines.... |
9960 | 20 20 20 20 20 20 24 70 61 72 74 73 20 20 3d 20 65 78 70 6c 6f 64 65 28 24 73 70 6c 69 74 5f 63 | ......$parts..=.explode($split_c |
9980 | 68 61 72 2c 20 24 61 64 64 72 65 73 73 29 3b 0a 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 | har,.$address);.........$string. |
99a0 | 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 24 73 70 | =.$this->_splitCheck($parts,.$sp |
99c0 | 6c 69 74 5f 63 68 61 72 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 61 20 67 72 6f 75 | lit_char);..........//.If.a.grou |
99e0 | 70 2e 2e 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 69 73 5f 67 72 6f 75 70 29 20 7b 0a 20 20 | p............if.($is_group).{... |
9a00 | 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 24 73 74 72 69 6e 67 20 64 6f 65 73 20 6e 6f 74 | ..........//.If.$string.does.not |
9a20 | 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6c 6f 6e 20 6f 75 74 73 69 64 65 20 6f 66 0a 20 20 20 20 | .contain.a.colon.outside.of..... |
9a40 | 20 20 20 20 20 20 20 20 2f 2f 20 62 72 61 63 6b 65 74 73 2f 71 75 6f 74 65 73 20 65 74 63 20 74 | ........//.brackets/quotes.etc.t |
9a60 | 68 65 6e 20 73 6f 6d 65 74 68 69 6e 67 27 73 20 66 75 62 61 72 2e 0a 0a 20 20 20 20 20 20 20 20 | hen.something's.fubar........... |
9a80 | 20 20 20 20 2f 2f 20 46 69 72 73 74 20 63 68 65 63 6b 20 74 68 65 72 65 27 73 20 61 20 63 6f 6c | ....//.First.check.there's.a.col |
9aa0 | 6f 6e 20 61 74 20 61 6c 6c 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 70 6f | on.at.all:.............if.(strpo |
9ac0 | 73 28 24 73 74 72 69 6e 67 2c 20 27 3a 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 | s($string,.':').===.false).{.... |
9ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 3d 20 27 49 6e 76 | .............$this->error.=.'Inv |
9b00 | 61 6c 69 64 20 61 64 64 72 65 73 73 3a 20 27 20 2e 20 24 73 74 72 69 6e 67 3b 0a 20 20 20 20 20 | alid.address:.'...$string;...... |
9b20 | 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 20 20 20 20 20 | ...........return.false;........ |
9b40 | 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 77 20 63 68 65 63 6b | .....}..............//.Now.check |
9b60 | 20 69 74 27 73 20 6f 75 74 73 69 64 65 20 6f 66 20 62 72 61 63 6b 65 74 73 2f 71 75 6f 74 65 73 | .it's.outside.of.brackets/quotes |
9b80 | 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 | :.............if.(!$this->_split |
9ba0 | 43 68 65 63 6b 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 73 74 72 69 6e 67 29 2c 20 27 3a 27 | Check(explode(':',.$string),.':' |
9bc0 | 29 29 0a 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 | )).................return.false; |
9be0 | 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 65 20 6d 75 73 74 20 68 61 76 65 20 61 20 | ..............//.We.must.have.a. |
9c00 | 67 72 6f 75 70 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 73 6f 20 69 6e 63 72 65 61 73 65 | group.at.this.point,.so.increase |
9c20 | 20 74 68 65 20 63 6f 75 6e 74 65 72 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d | .the.counter:.............$this- |
9c40 | 3e 6e 75 6d 5f 67 72 6f 75 70 73 2b 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 | >num_groups++;.........}........ |
9c60 | 20 20 2f 2f 20 24 73 74 72 69 6e 67 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 69 | ..//.$string.now.contains.the.fi |
9c80 | 72 73 74 20 66 75 6c 6c 20 61 64 64 72 65 73 73 2f 67 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 | rst.full.address/group.......... |
9ca0 | 2f 2f 20 41 64 64 20 74 6f 20 74 68 65 20 61 64 64 72 65 73 73 65 73 20 61 72 72 61 79 2e 0a 20 | //.Add.to.the.addresses.array... |
9cc0 | 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 72 65 73 73 65 73 5b 5d 20 3d 20 61 72 72 61 | .......$this->addresses[].=.arra |
9ce0 | 79 28 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 | y(.............................. |
9d00 | 20 20 20 20 20 20 27 61 64 64 72 65 73 73 27 20 3d 3e 20 74 72 69 6d 28 24 73 74 72 69 6e 67 29 | ......'address'.=>.trim($string) |
9d20 | 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 | ,............................... |
9d40 | 20 20 20 20 20 27 67 72 6f 75 70 27 20 20 20 3d 3e 20 24 69 73 5f 67 72 6f 75 70 0a 20 20 20 20 | .....'group'...=>.$is_group..... |
9d60 | 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 29 | ...............................) |
9d80 | 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 52 65 6d 6f 76 65 20 74 68 65 20 6e 6f 77 20 73 74 6f | ;..........//.Remove.the.now.sto |
9da0 | 72 65 64 20 61 64 64 72 65 73 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 69 74 69 61 6c 20 6c 69 6e | red.address.from.the.initial.lin |
9dc0 | 65 2c 20 74 68 65 20 2b 31 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 73 20 74 6f 20 61 63 63 6f 75 | e,.the.+1.........//.is.to.accou |
9de0 | 6e 74 20 66 6f 72 20 74 68 65 20 65 78 70 6c 6f 64 65 20 63 68 61 72 61 63 74 65 72 2e 0a 20 20 | nt.for.the.explode.character.... |
9e00 | 20 20 20 20 20 20 24 61 64 64 72 65 73 73 20 3d 20 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 64 | ......$address.=.trim(substr($ad |
9e20 | 64 72 65 73 73 2c 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 20 2b 20 31 29 29 3b 0a 0a 20 | dress,.strlen($string).+.1));... |
9e40 | 20 20 20 20 20 20 20 2f 2f 20 49 66 20 74 68 65 20 6e 65 78 74 20 63 68 61 72 20 69 73 20 61 20 | .......//.If.the.next.char.is.a. |
9e60 | 63 6f 6d 6d 61 20 61 6e 64 20 74 68 69 73 20 77 61 73 20 61 20 67 72 6f 75 70 2c 20 74 68 65 6e | comma.and.this.was.a.group,.then |
9e80 | 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 72 65 20 61 72 65 20 6d 6f 72 65 20 61 64 64 72 65 | .........//.there.are.more.addre |
9ea0 | 73 73 65 73 2c 20 6f 74 68 65 72 77 69 73 65 2c 20 69 66 20 74 68 65 72 65 20 61 72 65 20 61 6e | sses,.otherwise,.if.there.are.an |
9ec0 | 79 20 6d 6f 72 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 68 61 72 73 2c 20 74 68 65 6e 20 74 68 | y.more.........//.chars,.then.th |
9ee0 | 65 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 61 64 64 72 65 73 73 2e 0a 20 20 20 20 20 20 20 20 | ere.is.another.address.......... |
9f00 | 69 66 20 28 24 69 73 5f 67 72 6f 75 70 20 26 26 20 73 75 62 73 74 72 28 24 61 64 64 72 65 73 73 | if.($is_group.&&.substr($address |
9f20 | 2c 20 30 2c 20 31 29 20 3d 3d 20 27 2c 27 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 | ,.0,.1).==.','){.............$ad |
9f40 | 64 72 65 73 73 20 3d 20 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 64 64 72 65 73 73 2c 20 31 29 | dress.=.trim(substr($address,.1) |
9f60 | 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 64 64 72 65 73 73 3b 0a | );.............return.$address;. |
9f80 | 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 73 74 72 6c 65 6e 28 24 61 64 64 72 65 | .........}.elseif.(strlen($addre |
9fa0 | 73 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 | ss).>.0).{.............return.$a |
9fc0 | 64 64 72 65 73 73 3b 0a 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 | ddress;..........}.else.{....... |
9fe0 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 27 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | ......return.'';.........}...... |
a000 | 20 20 20 20 2f 2f 20 49 66 20 79 6f 75 20 67 6f 74 20 68 65 72 65 20 74 68 65 6e 20 73 6f 6d 65 | ....//.If.you.got.here.then.some |
a020 | 74 68 69 6e 67 27 73 20 6f 66 66 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 | thing's.off.........return.false |
a040 | 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 68 65 63 6b 73 20 66 | ;.....}....../**......*.Checks.f |
a060 | 6f 72 20 61 20 67 72 6f 75 70 20 61 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 73 | or.a.group.at.the.start.of.the.s |
a080 | 74 72 69 6e 67 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 | tring.......*.......*.@access.pr |
a0a0 | 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 64 64 72 | ivate......*.@param.string.$addr |
a0c0 | 65 73 73 20 54 68 65 20 61 64 64 72 65 73 73 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a | ess.The.address.to.check.......* |
a0e0 | 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 57 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 | .@return.boolean.Whether.or.not. |
a100 | 74 68 65 72 65 20 69 73 20 61 20 67 72 6f 75 70 20 61 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 | there.is.a.group.at.the.start.of |
a120 | 20 74 68 65 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f | .the.string.......*/.....functio |
a140 | 6e 20 5f 69 73 47 72 6f 75 70 28 24 61 64 64 72 65 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 | n._isGroup($address).....{...... |
a160 | 20 20 20 2f 2f 20 46 69 72 73 74 20 63 6f 6d 6d 61 20 6e 6f 74 20 69 6e 20 71 75 6f 74 65 73 2c | ...//.First.comma.not.in.quotes, |
a180 | 20 61 6e 67 6c 65 73 20 6f 72 20 65 73 63 61 70 65 64 3a 0a 20 20 20 20 20 20 20 20 24 70 61 72 | .angles.or.escaped:.........$par |
a1a0 | 74 73 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 24 61 64 64 72 65 73 73 29 3b 0a 20 20 | ts..=.explode(',',.$address);... |
a1c0 | 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 | ......$string.=.$this->_splitChe |
a1e0 | 63 6b 28 24 70 61 72 74 73 2c 20 27 2c 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 77 | ck($parts,.',');..........//.Now |
a200 | 20 77 65 20 68 61 76 65 20 74 68 65 20 66 69 72 73 74 20 61 64 64 72 65 73 73 2c 20 77 65 20 63 | .we.have.the.first.address,.we.c |
a220 | 61 6e 20 72 65 6c 69 61 62 6c 79 20 63 68 65 63 6b 20 66 6f 72 20 61 0a 20 20 20 20 20 20 20 20 | an.reliably.check.for.a......... |
a240 | 2f 2f 20 67 72 6f 75 70 20 62 79 20 73 65 61 72 63 68 69 6e 67 20 66 6f 72 20 61 20 63 6f 6c 6f | //.group.by.searching.for.a.colo |
a260 | 6e 20 74 68 61 74 27 73 20 6e 6f 74 20 65 73 63 61 70 65 64 20 6f 72 20 69 6e 0a 20 20 20 20 20 | n.that's.not.escaped.or.in...... |
a280 | 20 20 20 2f 2f 20 71 75 6f 74 65 73 20 6f 72 20 61 6e 67 6c 65 20 62 72 61 63 6b 65 74 73 2e 0a | ...//.quotes.or.angle.brackets.. |
a2a0 | 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f | ........if.(count($parts.=.explo |
a2c0 | 64 65 28 27 3a 27 2c 20 24 73 74 72 69 6e 67 29 29 20 3e 20 31 29 20 7b 0a 20 20 20 20 20 20 20 | de(':',.$string)).>.1).{........ |
a2e0 | 20 20 20 20 20 24 73 74 72 69 6e 67 32 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 | .....$string2.=.$this->_splitChe |
a300 | 63 6b 28 24 70 61 72 74 73 2c 20 27 3a 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | ck($parts,.':');.............ret |
a320 | 75 72 6e 20 28 24 73 74 72 69 6e 67 32 20 21 3d 3d 20 24 73 74 72 69 6e 67 29 3b 0a 20 20 20 20 | urn.($string2.!==.$string);..... |
a340 | 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 72 65 74 75 72 6e 20 | ....}.else.{.............return. |
a360 | 66 61 6c 73 65 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 | false;.........}.....}....../**. |
a380 | 20 20 20 20 20 2a 20 41 20 63 6f 6d 6d 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 | .....*.A.common.function.that.wi |
a3a0 | 6c 6c 20 63 68 65 63 6b 20 61 6e 20 65 78 70 6c 6f 64 65 64 20 73 74 72 69 6e 67 2e 0a 20 20 20 | ll.check.an.exploded.string..... |
a3c0 | 20 20 2a 20 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 | ..*.......*.@access.private..... |
a3e0 | 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 70 61 72 74 73 20 54 68 65 20 65 78 6c 6f 64 | .*.@param.array.$parts.The.exlod |
a400 | 65 64 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 | ed.string.......*.@param.string. |
a420 | 24 63 68 61 72 20 20 54 68 65 20 63 68 61 72 20 74 68 61 74 20 77 61 73 20 65 78 70 6c 6f 64 65 | $char..The.char.that.was.explode |
a440 | 64 20 6f 6e 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 46 61 6c 73 65 | d.on.......*.@return.mixed.False |
a460 | 20 69 66 20 74 68 65 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 73 20 75 6e 63 6c 6f 73 65 64 | .if.the.string.contains.unclosed |
a480 | 20 71 75 6f 74 65 73 2f 62 72 61 63 6b 65 74 73 2c 20 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 | .quotes/brackets,.or.the.string. |
a4a0 | 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | on.success.......*/.....function |
a4c0 | 20 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 24 63 68 61 72 29 0a 20 20 20 20 | ._splitCheck($parts,.$char)..... |
a4e0 | 7b 0a 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 3d 20 24 70 61 72 74 73 5b 30 5d 3b 0a 0a | {.........$string.=.$parts[0];.. |
a500 | 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 | ........for.($i.=.0;.$i.<.count( |
a520 | 24 70 61 72 74 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | $parts);.$i++).{.............if. |
a540 | 28 24 74 68 69 73 2d 3e 5f 68 61 73 55 6e 63 6c 6f 73 65 64 51 75 6f 74 65 73 28 24 73 74 72 69 | ($this->_hasUnclosedQuotes($stri |
a560 | 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20 24 74 68 69 73 2d 3e 5f 68 | ng).................||.$this->_h |
a580 | 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 28 24 73 74 72 69 6e 67 2c 20 27 3c 3e 27 | asUnclosedBrackets($string,.'<>' |
a5a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20 24 74 68 69 73 2d 3e 5f 68 61 73 | ).................||.$this->_has |
a5c0 | 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 28 24 73 74 72 69 6e 67 2c 20 27 5b 5d 27 29 0a | UnclosedBrackets($string,.'[]'). |
a5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20 24 74 68 69 73 2d 3e 5f 68 61 73 55 6e | ................||.$this->_hasUn |
a600 | 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 28 24 73 74 72 69 6e 67 2c 20 27 28 29 27 29 0a 20 20 | closedBrackets($string,.'()')... |
a620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20 73 75 62 73 74 72 28 24 73 74 72 69 6e 67 2c | ..............||.substr($string, |
a640 | 20 2d 31 29 20 3d 3d 20 27 5c 5c 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .-1).==.'\\').{................. |
a660 | 69 66 20 28 69 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 20 2b 20 31 5d 29 29 20 7b 0a 20 20 20 | if.(isset($parts[$i.+.1])).{.... |
a680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 3d 20 24 73 74 72 69 | .................$string.=.$stri |
a6a0 | 6e 67 20 2e 20 24 63 68 61 72 20 2e 20 24 70 61 72 74 73 5b 24 69 20 2b 20 31 5d 3b 0a 20 20 20 | ng...$char...$parts[$i.+.1];.... |
a6c0 | 20 20 20 20 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 | .............}.else.{........... |
a6e0 | 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 3d 20 27 49 6e 76 61 6c 69 | ..........$this->error.=.'Invali |
a700 | 64 20 61 64 64 72 65 73 73 20 73 70 65 63 2e 20 55 6e 63 6c 6f 73 65 64 20 62 72 61 63 6b 65 74 | d.address.spec..Unclosed.bracket |
a720 | 20 6f 72 20 71 75 6f 74 65 73 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .or.quotes';.................... |
a740 | 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d | .return.false;.................} |
a760 | 0a 20 20 20 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 | .............}.else.{........... |
a780 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 69 6e 64 65 78 20 3d 20 24 69 3b 0a 20 20 20 20 20 20 20 | ......$this->index.=.$i;........ |
a7a0 | 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 7d 0a 20 20 | .........break;.............}... |
a7c0 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b | ......}..........return.$string; |
a7e0 | 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 68 65 63 6b 73 20 69 66 | .....}....../**......*.Checks.if |
a800 | 20 61 20 73 74 72 69 6e 67 20 68 61 73 20 61 6e 20 75 6e 63 6c 6f 73 65 64 20 71 75 6f 74 65 73 | .a.string.has.an.unclosed.quotes |
a820 | 20 6f 72 20 6e 6f 74 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 | .or.not.......*.......*.@access. |
a840 | 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 74 | private......*.@param.string.$st |
a860 | 72 69 6e 67 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a | ring.The.string.to.check.......* |
a880 | 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 54 72 75 65 20 69 66 20 74 68 65 72 65 20 61 | .@return.boolean.True.if.there.a |
a8a0 | 72 65 20 75 6e 63 6c 6f 73 65 64 20 71 75 6f 74 65 73 20 69 6e 73 69 64 65 20 74 68 65 20 73 74 | re.unclosed.quotes.inside.the.st |
a8c0 | 72 69 6e 67 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 2f 0a 20 | ring,.false.otherwise.......*/.. |
a8e0 | 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 68 61 73 55 6e 63 6c 6f 73 65 64 51 75 6f 74 65 73 28 24 | ...function._hasUnclosedQuotes($ |
a900 | 73 74 72 69 6e 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 20 20 20 | string).....{.........$string... |
a920 | 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 22 27 2c 20 24 73 74 72 69 6e 67 29 3b 0a 20 20 20 20 20 | ..=.explode('"',.$string);...... |
a940 | 20 20 20 24 73 74 72 69 6e 67 5f 63 6e 74 20 3d 20 63 6f 75 6e 74 28 24 73 74 72 69 6e 67 29 3b | ...$string_cnt.=.count($string); |
a960 | 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 28 63 6f 75 | ..........for.($i.=.0;.$i.<.(cou |
a980 | 6e 74 28 24 73 74 72 69 6e 67 29 20 2d 20 31 29 3b 20 24 69 2b 2b 29 0a 20 20 20 20 20 20 20 20 | nt($string).-.1);.$i++)......... |
a9a0 | 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 73 74 72 69 6e 67 5b 24 69 5d 2c 20 2d 31 29 20 | ....if.(substr($string[$i],.-1). |
a9c0 | 3d 3d 20 27 5c 5c 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 69 6e 67 | ==.'\\').................$string |
a9e0 | 5f 63 6e 74 2d 2d 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 73 74 72 69 6e 67 | _cnt--;..........return.($string |
aa00 | 5f 63 6e 74 20 25 20 32 20 3d 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a | _cnt.%.2.===.0);.....}....../**. |
aa20 | 20 20 20 20 20 2a 20 43 68 65 63 6b 73 20 69 66 20 61 20 73 74 72 69 6e 67 20 68 61 73 20 61 6e | .....*.Checks.if.a.string.has.an |
aa40 | 20 75 6e 63 6c 6f 73 65 64 20 62 72 61 63 6b 65 74 73 20 6f 72 20 6e 6f 74 2e 20 49 4d 50 4f 52 | .unclosed.brackets.or.not..IMPOR |
aa60 | 54 41 4e 54 3a 0a 20 20 20 20 20 2a 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c | TANT:......*.This.function.handl |
aa80 | 65 73 20 62 6f 74 68 20 61 6e 67 6c 65 20 62 72 61 63 6b 65 74 73 20 61 6e 64 20 73 71 75 61 72 | es.both.angle.brackets.and.squar |
aaa0 | 65 20 62 72 61 63 6b 65 74 73 3b 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 | e.brackets;......*.......*.@acce |
aac0 | 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 | ss.private......*.@param.string. |
aae0 | 24 73 74 72 69 6e 67 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 | $string.The.string.to.check..... |
ab00 | 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 68 61 72 73 20 20 54 68 65 20 63 68 | ..*.@param.string.$chars..The.ch |
ab20 | 61 72 61 63 74 65 72 73 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 2e 0a 20 20 20 20 20 2a 20 40 72 | aracters.to.check.for.......*.@r |
ab40 | 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 54 72 75 65 20 69 66 20 74 68 65 72 65 20 61 72 65 20 | eturn.boolean.True.if.there.are. |
ab60 | 75 6e 63 6c 6f 73 65 64 20 62 72 61 63 6b 65 74 73 20 69 6e 73 69 64 65 20 74 68 65 20 73 74 72 | unclosed.brackets.inside.the.str |
ab80 | 69 6e 67 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 2f 0a 20 20 | ing,.false.otherwise.......*/... |
aba0 | 20 20 66 75 6e 63 74 69 6f 6e 20 5f 68 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 28 | ..function._hasUnclosedBrackets( |
abc0 | 24 73 74 72 69 6e 67 2c 20 24 63 68 61 72 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 | $string,.$chars).....{.........$ |
abe0 | 6e 75 6d 5f 61 6e 67 6c 65 5f 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 | num_angle_start.=.substr_count($ |
ac00 | 73 74 72 69 6e 67 2c 20 24 63 68 61 72 73 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 24 6e 75 6d | string,.$chars[0]);.........$num |
ac20 | 5f 61 6e 67 6c 65 5f 65 6e 64 20 20 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 73 74 72 | _angle_end...=.substr_count($str |
ac40 | 69 6e 67 2c 20 24 63 68 61 72 73 5b 31 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d | ing,.$chars[1]);..........$this- |
ac60 | 3e 5f 68 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 53 75 62 28 24 73 74 72 69 6e 67 | >_hasUnclosedBracketsSub($string |
ac80 | 2c 20 24 6e 75 6d 5f 61 6e 67 6c 65 5f 73 74 61 72 74 2c 20 24 63 68 61 72 73 5b 30 5d 29 3b 0a | ,.$num_angle_start,.$chars[0]);. |
aca0 | 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 5f 68 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b | ........$this->_hasUnclosedBrack |
acc0 | 65 74 73 53 75 62 28 24 73 74 72 69 6e 67 2c 20 24 6e 75 6d 5f 61 6e 67 6c 65 5f 65 6e 64 2c 20 | etsSub($string,.$num_angle_end,. |
ace0 | 24 63 68 61 72 73 5b 31 5d 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 75 6d 5f 61 6e | $chars[1]);..........if.($num_an |
ad00 | 67 6c 65 5f 73 74 61 72 74 20 3c 20 24 6e 75 6d 5f 61 6e 67 6c 65 5f 65 6e 64 29 20 7b 0a 20 20 | gle_start.<.$num_angle_end).{... |
ad20 | 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 3d 20 27 49 6e 76 61 6c 69 | ..........$this->error.=.'Invali |
ad40 | 64 20 61 64 64 72 65 73 73 20 73 70 65 63 2e 20 55 6e 6d 61 74 63 68 65 64 20 71 75 6f 74 65 20 | d.address.spec..Unmatched.quote. |
ad60 | 6f 72 20 62 72 61 63 6b 65 74 20 28 27 20 2e 20 24 63 68 61 72 73 20 2e 20 27 29 27 3b 0a 20 20 | or.bracket.('...$chars...')';... |
ad80 | 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 20 20 20 20 20 20 | ..........return.false;......... |
ada0 | 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 6e 75 | }.else.{.............return.($nu |
adc0 | 6d 5f 61 6e 67 6c 65 5f 73 74 61 72 74 20 3e 20 24 6e 75 6d 5f 61 6e 67 6c 65 5f 65 6e 64 29 3b | m_angle_start.>.$num_angle_end); |
ade0 | 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 20 20 20 2a | .........}.....}....../**......* |
ae00 | 20 53 75 62 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 20 | .Sub.function.that.is.used.only. |
ae20 | 62 79 20 68 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 73 28 29 2e 0a 20 20 20 20 20 2a | by.hasUnclosedBrackets().......* |
ae40 | 20 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......*. |
ae60 | 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 73 74 72 69 6e 67 20 54 68 65 20 73 74 72 69 6e 67 | @param.string.$string.The.string |
ae80 | 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 65 67 65 72 | .to.check.......*.@param.integer |
aea0 | 20 26 24 6e 75 6d 20 20 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6f 63 63 75 72 65 6e 63 | .&$num....The.number.of.occurenc |
aec0 | 65 73 2e 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 68 61 72 20 20 | es.......*.@param.string.$char.. |
aee0 | 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 63 6f 75 6e 74 2e 0a 20 20 20 20 20 2a 20 | .The.character.to.count.......*. |
af00 | 40 72 65 74 75 72 6e 20 69 6e 74 65 67 65 72 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6f 63 | @return.integer.The.number.of.oc |
af20 | 63 75 72 65 6e 63 65 73 20 6f 66 20 24 63 68 61 72 20 69 6e 20 24 73 74 72 69 6e 67 2c 20 61 64 | curences.of.$char.in.$string,.ad |
af40 | 6a 75 73 74 65 64 20 66 6f 72 20 62 61 63 6b 73 6c 61 73 68 65 73 2e 0a 20 20 20 20 20 2a 2f 0a | justed.for.backslashes.......*/. |
af60 | 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 68 61 73 55 6e 63 6c 6f 73 65 64 42 72 61 63 6b 65 74 | ....function._hasUnclosedBracket |
af80 | 73 53 75 62 28 24 73 74 72 69 6e 67 2c 20 26 24 6e 75 6d 2c 20 24 63 68 61 72 29 0a 20 20 20 20 | sSub($string,.&$num,.$char)..... |
afa0 | 7b 0a 20 20 20 20 20 20 20 20 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 24 63 68 61 72 | {.........$parts.=.explode($char |
afc0 | 2c 20 24 73 74 72 69 6e 67 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b | ,.$string);.........for.($i.=.0; |
afe0 | 20 24 69 20 3c 20 63 6f 75 6e 74 28 24 70 61 72 74 73 29 3b 20 24 69 2b 2b 29 7b 0a 20 20 20 20 | .$i.<.count($parts);.$i++){..... |
b000 | 20 20 20 20 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 70 61 72 74 73 5b 24 69 5d 2c 20 2d | ........if.(substr($parts[$i],.- |
b020 | 31 29 20 3d 3d 20 27 5c 5c 27 20 7c 7c 20 24 74 68 69 73 2d 3e 5f 68 61 73 55 6e 63 6c 6f 73 65 | 1).==.'\\'.||.$this->_hasUnclose |
b040 | 64 51 75 6f 74 65 73 28 24 70 61 72 74 73 5b 24 69 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | dQuotes($parts[$i]))............ |
b060 | 20 20 20 20 20 24 6e 75 6d 2d 2d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 | .....$num--;.............if.(iss |
b080 | 65 74 28 24 70 61 72 74 73 5b 24 69 20 2b 20 31 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | et($parts[$i.+.1]))............. |
b0a0 | 20 20 20 20 24 70 61 72 74 73 5b 24 69 20 2b 20 31 5d 20 3d 20 24 70 61 72 74 73 5b 24 69 5d 20 | ....$parts[$i.+.1].=.$parts[$i]. |
b0c0 | 2e 20 24 63 68 61 72 20 2e 20 24 70 61 72 74 73 5b 24 69 20 2b 20 31 5d 3b 0a 20 20 20 20 20 20 | ..$char...$parts[$i.+.1];....... |
b0e0 | 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6e 75 6d | ..}..................return.$num |
b100 | 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e | ;.....}....../**......*.Function |
b120 | 20 74 6f 20 62 65 67 69 6e 20 63 68 65 63 6b 69 6e 67 20 74 68 65 20 61 64 64 72 65 73 73 2e 0a | .to.begin.checking.the.address.. |
b140 | 20 20 20 20 20 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 | .....*......*.@access.private... |
b160 | 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 64 64 72 65 73 73 20 54 68 65 20 | ...*.@param.string.$address.The. |
b180 | 61 64 64 72 65 73 73 20 74 6f 20 76 61 6c 69 64 61 74 65 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 | address.to.validate.......*.@ret |
b1a0 | 75 72 6e 20 6d 69 78 65 64 20 46 61 6c 73 65 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 61 | urn.mixed.False.on.failure,.or.a |
b1c0 | 20 73 74 72 75 63 74 75 72 65 64 20 61 72 72 61 79 20 6f 66 20 61 64 64 72 65 73 73 20 69 6e 66 | .structured.array.of.address.inf |
b1e0 | 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 | ormation.on.success.......*/.... |
b200 | 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 41 64 64 72 65 73 73 28 24 61 64 64 72 | .function._validateAddress($addr |
b220 | 65 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 73 5f 67 72 6f 75 70 20 3d 20 66 | ess).....{.........$is_group.=.f |
b240 | 61 6c 73 65 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 61 64 64 72 65 73 73 5b 27 67 72 6f | alse;..........if.($address['gro |
b260 | 75 70 27 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 73 5f 67 72 6f 75 70 20 3d 20 | up']).{.............$is_group.=. |
b280 | 74 72 75 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 47 65 74 20 74 68 65 20 67 72 | true;..............//.Get.the.gr |
b2a0 | 6f 75 70 20 70 61 72 74 20 6f 66 20 74 68 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 | oup.part.of.the.name............ |
b2c0 | 20 24 70 61 72 74 73 20 20 20 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 61 64 64 72 | .$parts.....=.explode(':',.$addr |
b2e0 | 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 67 72 | ess['address']);.............$gr |
b300 | 6f 75 70 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 | oupname.=.$this->_splitCheck($pa |
b320 | 72 74 73 2c 20 27 3a 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 75 63 74 75 72 | rts,.':');.............$structur |
b340 | 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 6e 64 | e.=.array();..............//.And |
b360 | 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 67 72 6f 75 70 20 70 61 72 74 20 6f 66 20 74 68 65 20 | .validate.the.group.part.of.the. |
b380 | 6e 61 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 76 | name..............if.(!$this->_v |
b3a0 | 61 6c 69 64 61 74 65 50 68 72 61 73 65 28 24 67 72 6f 75 70 6e 61 6d 65 29 29 7b 0a 20 20 20 20 | alidatePhrase($groupname)){..... |
b3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 3d 20 27 47 72 6f 75 | ............$this->error.=.'Grou |
b3e0 | 70 20 6e 61 6d 65 20 64 69 64 20 6e 6f 74 20 76 61 6c 69 64 61 74 65 2e 27 3b 0a 20 20 20 20 20 | p.name.did.not.validate.';...... |
b400 | 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 20 20 20 20 20 | ...........return.false;........ |
b420 | 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 20 20 2f 2f | .....}.else.{.................// |
b440 | 20 44 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 67 72 6f 75 70 73 20 69 66 20 77 65 20 61 72 65 20 | .Don't.include.groups.if.we.are. |
b460 | 6e 6f 74 20 6e 65 73 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 | not.nesting.................//.t |
b480 | 68 65 6d 2e 20 54 68 69 73 20 61 76 6f 69 64 73 20 72 65 74 75 72 6e 69 6e 67 20 69 6e 76 61 6c | hem..This.avoids.returning.inval |
b4a0 | 69 64 20 61 64 64 72 65 73 73 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | id.addresses..................if |
b4c0 | 20 28 24 74 68 69 73 2d 3e 6e 65 73 74 47 72 6f 75 70 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | .($this->nestGroups).{.......... |
b4e0 | 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 75 63 74 75 72 65 20 3d 20 6e 65 77 20 73 74 64 43 | ...........$structure.=.new.stdC |
b500 | 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 75 63 | lass;.....................$struc |
b520 | 74 75 72 65 2d 3e 67 72 6f 75 70 6e 61 6d 65 20 3d 20 24 67 72 6f 75 70 6e 61 6d 65 3b 0a 20 20 | ture->groupname.=.$groupname;... |
b540 | 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 0a 20 | ..............}.............}... |
b560 | 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 20 3d | ...........$address['address'].= |
b580 | 20 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 64 64 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 | .ltrim(substr($address['address' |
b5a0 | 5d 2c 20 73 74 72 6c 65 6e 28 24 67 72 6f 75 70 6e 61 6d 65 20 2e 20 27 3a 27 29 29 29 3b 0a 20 | ],.strlen($groupname...':')));.. |
b5c0 | 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 61 20 67 72 6f 75 70 20 | .......}..........//.If.a.group. |
b5e0 | 74 68 65 6e 20 73 70 6c 69 74 20 6f 6e 20 63 6f 6d 6d 61 20 61 6e 64 20 70 75 74 20 69 6e 74 6f | then.split.on.comma.and.put.into |
b600 | 20 61 6e 20 61 72 72 61 79 2e 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 74 68 65 72 77 69 73 65 2c | .an.array..........//.Otherwise, |
b620 | 20 4a 75 73 74 20 70 75 74 20 74 68 65 20 77 68 6f 6c 65 20 61 64 64 72 65 73 73 20 69 6e 20 61 | .Just.put.the.whole.address.in.a |
b640 | 6e 20 61 72 72 61 79 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 69 73 5f 67 72 6f 75 70 29 20 | n.array..........if.($is_group). |
b660 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 28 24 61 64 64 | {.............while.(strlen($add |
b680 | 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 | ress['address']).>.0).{......... |
b6a0 | 20 20 20 20 20 20 20 20 24 70 61 72 74 73 20 20 20 20 20 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 | ........$parts.......=.explode(' |
b6c0 | 2c 27 2c 20 24 61 64 64 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 29 3b 0a 20 20 20 20 20 20 | ,',.$address['address']);....... |
b6e0 | 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e | ..........$addresses[].=.$this-> |
b700 | 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 2c 27 29 3b 0a 20 20 20 20 20 20 | _splitCheck($parts,.',');....... |
b720 | 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 20 3d 20 | ..........$address['address'].=. |
b740 | 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 64 64 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 2c | trim(substr($address['address'], |
b760 | 20 73 74 72 6c 65 6e 28 65 6e 64 28 24 61 64 64 72 65 73 73 65 73 29 20 2e 20 27 2c 27 29 29 29 | .strlen(end($addresses)...','))) |
b780 | 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 20 65 6c 73 65 20 7b | ;.............}.........}.else.{ |
b7a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 65 73 5b 5d 20 3d 20 24 61 64 64 | .............$addresses[].=.$add |
b7c0 | 72 65 73 73 5b 27 61 64 64 72 65 73 73 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | ress['address'];.........}...... |
b7e0 | 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 74 68 61 74 20 24 61 64 64 72 65 73 73 65 73 20 69 73 20 | ....//.Check.that.$addresses.is. |
b800 | 73 65 74 2c 20 69 66 20 61 64 64 72 65 73 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 | set,.if.address.like.this:...... |
b820 | 20 20 20 2f 2f 20 47 72 6f 75 70 6e 61 6d 65 3a 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 | ...//.Groupname:;.........//.The |
b840 | 6e 20 65 72 72 6f 72 73 20 77 65 72 65 20 61 70 70 65 61 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 | n.errors.were.appearing......... |
b860 | 20 69 66 20 28 21 69 73 73 65 74 28 24 61 64 64 72 65 73 73 65 73 29 29 7b 0a 20 20 20 20 20 20 | .if.(!isset($addresses)){....... |
b880 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 20 3d 20 27 45 6d 70 74 79 20 67 72 6f 75 | ......$this->error.=.'Empty.grou |
b8a0 | 70 2e 27 3b 0a 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 | p.';.............return.false;.. |
b8c0 | 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;.$ |
b8e0 | 69 20 3c 20 63 6f 75 6e 74 28 24 61 64 64 72 65 73 73 65 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 | i.<.count($addresses);.$i++).{.. |
b900 | 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 65 73 73 65 73 5b 24 69 5d 20 3d 20 74 72 69 6d | ...........$addresses[$i].=.trim |
b920 | 28 24 61 64 64 72 65 73 73 65 73 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 | ($addresses[$i]);.........}..... |
b940 | 20 20 20 20 20 2f 2f 20 56 61 6c 69 64 61 74 65 20 65 61 63 68 20 6d 61 69 6c 62 6f 78 2e 0a 20 | .....//.Validate.each.mailbox... |
b960 | 20 20 20 20 20 20 20 2f 2f 20 46 6f 72 6d 61 74 20 63 6f 75 6c 64 20 62 65 20 6f 6e 65 20 6f 66 | .......//.Format.could.be.one.of |
b980 | 3a 20 6e 61 6d 65 20 3c 67 65 65 7a 65 72 40 64 6f 6d 61 69 6e 2e 63 6f 6d 3e 0a 20 20 20 20 20 | :.name.<geezer@domain.com>...... |
b9a0 | 20 20 20 2f 2f 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 67 65 | ...//.........................ge |
b9c0 | 65 7a 65 72 40 64 6f 6d 61 69 6e 2e 63 6f 6d 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 | ezer@domain.com.........//...... |
b9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 65 7a 65 72 0a 20 20 20 20 20 20 | ...................geezer....... |
ba00 | 20 20 2f 2f 20 2e 2e 2e 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 20 76 61 6c | ..//.....or.any.other.format.val |
ba20 | 69 64 20 62 79 20 52 46 43 20 38 32 32 2e 0a 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 77 61 6c | id.by.RFC.822..........array_wal |
ba40 | 6b 28 24 61 64 64 72 65 73 73 65 73 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 76 61 6c 69 | k($addresses,.array($this,.'vali |
ba60 | 64 61 74 65 4d 61 69 6c 62 6f 78 27 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4e 65 73 74 | dateMailbox'));..........//.Nest |
ba80 | 65 64 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6e 65 73 | ed.format.........if.($this->nes |
baa0 | 74 47 72 6f 75 70 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 69 73 5f 67 | tGroups).{.............if.($is_g |
bac0 | 72 6f 75 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 75 63 74 75 | roup).{.................$structu |
bae0 | 72 65 2d 3e 61 64 64 72 65 73 73 65 73 20 3d 20 24 61 64 64 72 65 73 73 65 73 3b 0a 20 20 20 20 | re->addresses.=.$addresses;..... |
bb00 | 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 20 | ........}.else.{................ |
bb20 | 20 24 73 74 72 75 63 74 75 72 65 20 3d 20 24 61 64 64 72 65 73 73 65 73 5b 30 5d 3b 0a 20 20 20 | .$structure.=.$addresses[0];.... |
bb40 | 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 46 6c 61 74 20 66 6f 72 6d | .........}..........//.Flat.form |
bb60 | 61 74 0a 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 | at.........}.else.{............. |
bb80 | 69 66 20 28 24 69 73 5f 67 72 6f 75 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.($is_group).{................ |
bba0 | 20 24 73 74 72 75 63 74 75 72 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 73 74 72 75 63 | .$structure.=.array_merge($struc |
bbc0 | 74 75 72 65 2c 20 24 61 64 64 72 65 73 73 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d | ture,.$addresses);.............} |
bbe0 | 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 72 75 63 74 75 | .else.{.................$structu |
bc00 | 72 65 20 3d 20 24 61 64 64 72 65 73 73 65 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 | re.=.$addresses;.............}.. |
bc20 | 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 24 73 74 72 75 63 74 | .......}..........return.$struct |
bc40 | 75 72 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 46 75 6e 63 74 | ure;.....}....../**......*.Funct |
bc60 | 69 6f 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 20 70 68 72 61 73 65 2e 0a 20 20 20 20 20 2a | ion.to.validate.a.phrase.......* |
bc80 | 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 40 | ......*.@access.private......*.@ |
bca0 | 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 70 68 72 61 73 65 20 54 68 65 20 70 68 72 61 73 65 20 | param.string.$phrase.The.phrase. |
bcc0 | 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e | to.check.......*.@return.boolean |
bce0 | 20 53 75 63 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 | .Success.or.failure.......*/.... |
bd00 | 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 50 68 72 61 73 65 28 24 70 68 72 61 73 | .function._validatePhrase($phras |
bd20 | 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 70 6c 69 74 73 20 6f 6e 20 6f 6e | e).....{.........//.Splits.on.on |
bd40 | 65 20 6f 72 20 6d 6f 72 65 20 54 61 62 20 6f 72 20 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 | e.or.more.Tab.or.space.......... |
bd60 | 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 5b 20 5c 5c 78 30 39 5d 2b 2f | $parts.=.preg_split('/[.\\x09]+/ |
bd80 | 27 2c 20 24 70 68 72 61 73 65 2c 20 2d 31 2c 20 50 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d | ',.$phrase,.-1,.PREG_SPLIT_NO_EM |
bda0 | 50 54 59 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 70 68 72 61 73 65 5f 70 61 72 74 73 20 3d 20 61 | PTY);..........$phrase_parts.=.a |
bdc0 | 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 70 61 | rray();.........while.(count($pa |
bde0 | 72 74 73 29 20 3e 20 30 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 68 72 61 73 65 5f 70 | rts).>.0){.............$phrase_p |
be00 | 61 72 74 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 | arts[].=.$this->_splitCheck($par |
be20 | 74 73 2c 20 27 20 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 | ts,.'.');.............for.($i.=. |
be40 | 30 3b 20 24 69 20 3c 20 24 74 68 69 73 2d 3e 69 6e 64 65 78 20 2b 20 31 3b 20 24 69 2b 2b 29 0a | 0;.$i.<.$this->index.+.1;.$i++). |
be60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 70 61 72 | ................array_shift($par |
be80 | 74 73 29 3b 0a 20 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 | ts);.........}..........for.($i. |
bea0 | 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 24 70 68 72 61 73 65 5f 70 61 72 74 73 29 3b 20 | =.0;.$i.<.count($phrase_parts);. |
bec0 | 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 71 75 6f 74 65 64 | $i++).{.............//.If.quoted |
bee0 | 20 73 74 72 69 6e 67 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 | .string:.............if.(substr( |
bf00 | 24 70 68 72 61 73 65 5f 70 61 72 74 73 5b 24 69 5d 2c 20 30 2c 20 31 29 20 3d 3d 20 27 22 27 29 | $phrase_parts[$i],.0,.1).==.'"') |
bf20 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 5f | .{.................if.(!$this->_ |
bf40 | 76 61 6c 69 64 61 74 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 70 68 72 61 73 65 5f 70 61 72 | validateQuotedString($phrase_par |
bf60 | 74 73 5b 24 69 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | ts[$i])).....................ret |
bf80 | 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 | urn.false;.................conti |
bfa0 | 6e 75 65 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 20 | nue;.............}.............. |
bfc0 | 2f 2f 20 4f 74 68 65 72 77 69 73 65 20 69 74 27 73 20 61 6e 20 61 74 6f 6d 3a 0a 20 20 20 20 20 | //.Otherwise.it's.an.atom:...... |
bfe0 | 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 41 74 6f 6d | .......if.(!$this->_validateAtom |
c000 | 28 24 70 68 72 61 73 65 5f 70 61 72 74 73 5b 24 69 5d 29 29 20 72 65 74 75 72 6e 20 66 61 6c 73 | ($phrase_parts[$i])).return.fals |
c020 | 65 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 | e;.........}..........return.tru |
c040 | 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 46 75 6e 63 74 69 6f | e;.....}....../**......*.Functio |
c060 | 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 6e 20 61 74 6f 6d 20 77 68 69 63 68 20 66 72 6f 6d | n.to.validate.an.atom.which.from |
c080 | 20 72 66 63 38 32 32 20 69 73 3a 0a 20 20 20 20 20 2a 20 61 74 6f 6d 20 3d 20 31 2a 3c 61 6e 79 | .rfc822.is:......*.atom.=.1*<any |
c0a0 | 20 43 48 41 52 20 65 78 63 65 70 74 20 73 70 65 63 69 61 6c 73 2c 20 53 50 41 43 45 20 61 6e 64 | .CHAR.except.specials,.SPACE.and |
c0c0 | 20 43 54 4c 73 3e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 49 66 20 76 61 6c 69 64 61 74 | .CTLs>......*.......*.If.validat |
c0e0 | 69 6f 6e 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 29 20 68 61 73 20 62 65 65 6e 20 74 | ion.($this->validate).has.been.t |
c100 | 75 72 6e 65 64 20 6f 66 66 2c 20 74 68 65 6e 0a 20 20 20 20 20 2a 20 76 61 6c 69 64 61 74 65 41 | urned.off,.then......*.validateA |
c120 | 74 6f 6d 28 29 20 64 6f 65 73 6e 27 74 20 61 63 74 75 61 6c 6c 79 20 63 68 65 63 6b 20 61 6e 79 | tom().doesn't.actually.check.any |
c140 | 74 68 69 6e 67 2e 20 54 68 69 73 20 69 73 20 73 6f 20 74 68 61 74 20 79 6f 75 0a 20 20 20 20 20 | thing..This.is.so.that.you...... |
c160 | 2a 20 63 61 6e 20 73 70 6c 69 74 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 72 65 73 73 65 73 20 | *.can.split.a.list.of.addresses. |
c180 | 75 70 20 62 65 66 6f 72 65 20 65 6e 63 6f 64 69 6e 67 20 70 65 72 73 6f 6e 61 6c 20 6e 61 6d 65 | up.before.encoding.personal.name |
c1a0 | 73 0a 20 20 20 20 20 2a 20 28 75 6d 6c 61 75 74 73 2c 20 65 74 63 2e 29 2c 20 66 6f 72 20 65 78 | s......*.(umlauts,.etc.),.for.ex |
c1c0 | 61 6d 70 6c 65 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 | ample.......*.......*.@access.pr |
c1e0 | 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 74 6f 6d | ivate......*.@param.string.$atom |
c200 | 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 | .The.string.to.check.......*.@re |
c220 | 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 53 75 63 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e | turn.boolean.Success.or.failure. |
c240 | 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 41 | ......*/.....function._validateA |
c260 | 74 6f 6d 28 24 61 74 6f 6d 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 | tom($atom).....{.........if.(!$t |
c280 | 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 | his->validate).{.............//. |
c2a0 | 56 61 6c 69 64 61 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 74 75 72 6e 65 64 20 6f 66 66 3b 20 | Validation.has.been.turned.off;. |
c2c0 | 61 73 73 75 6d 65 20 74 68 65 20 61 74 6f 6d 20 69 73 20 6f 6b 61 79 2e 0a 20 20 20 20 20 20 20 | assume.the.atom.is.okay......... |
c2e0 | 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 0a 20 20 20 | .....return.true;.........}..... |
c300 | 20 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 61 6e 79 20 63 68 61 72 20 66 72 6f 6d 20 | .....//.Check.for.any.char.from. |
c320 | 41 53 43 49 49 20 30 20 2d 20 41 53 43 49 49 20 31 32 37 0a 20 20 20 20 20 20 20 20 69 66 20 28 | ASCII.0.-.ASCII.127.........if.( |
c340 | 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5c 5c 78 30 30 2d 5c 5c 78 37 45 5d 2b 24 2f 69 | !preg_match('/^[\\x00-\\x7E]+$/i |
c360 | 27 2c 20 24 61 74 6f 6d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | ',.$atom,.$matches)).{.......... |
c380 | 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | ...return.false;.........}...... |
c3a0 | 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 73 70 65 63 69 61 6c 73 3a 0a 20 20 20 20 20 | ....//.Check.for.specials:...... |
c3c0 | 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 5d 5b 28 29 3c 3e 40 2c 3b 5c 5c | ...if.(preg_match('/[][()<>@,;\\ |
c3e0 | 3a 22 2e 20 5d 2f 27 2c 20 24 61 74 6f 6d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 | :"..]/',.$atom)).{.............r |
c400 | 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 | eturn.false;.........}.......... |
c420 | 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 73 20 | //.Check.for.control.characters. |
c440 | 28 41 53 43 49 49 20 30 2d 33 31 29 3a 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d | (ASCII.0-31):.........if.(preg_m |
c460 | 61 74 63 68 28 27 2f 5b 5c 5c 78 30 30 2d 5c 5c 78 31 46 5d 2b 2f 27 2c 20 24 61 74 6f 6d 29 29 | atch('/[\\x00-\\x1F]+/',.$atom)) |
c480 | 20 7b 0a 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 20 | .{.............return.false;.... |
c4a0 | 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 20 20 | .....}..........return.true;.... |
c4c0 | 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 76 | .}....../**......*.Function.to.v |
c4e0 | 61 6c 69 64 61 74 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 2c 20 77 68 69 63 68 20 69 73 3a | alidate.quoted.string,.which.is: |
c500 | 0a 20 20 20 20 20 2a 20 71 75 6f 74 65 64 2d 73 74 72 69 6e 67 20 3d 20 3c 22 3e 20 2a 28 71 74 | ......*.quoted-string.=.<">.*(qt |
c520 | 65 78 74 2f 71 75 6f 74 65 64 2d 70 61 69 72 29 20 3c 22 3e 0a 20 20 20 20 20 2a 20 0a 20 20 20 | ext/quoted-pair).<">......*..... |
c540 | 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 40 70 61 72 61 | ..*.@access.private......*.@para |
c560 | 6d 20 73 74 72 69 6e 67 20 24 71 73 74 72 69 6e 67 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 | m.string.$qstring.The.string.to. |
c580 | 63 68 65 63 6b 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 53 75 63 | check......*.@return.boolean.Suc |
c5a0 | 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e | cess.or.failure.......*/.....fun |
c5c0 | 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 71 73 74 | ction._validateQuotedString($qst |
c5e0 | 72 69 6e 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 4c 65 61 64 69 6e 67 20 61 | ring).....{.........//.Leading.a |
c600 | 6e 64 20 74 72 61 69 6c 69 6e 67 20 22 0a 20 20 20 20 20 20 20 20 24 71 73 74 72 69 6e 67 20 3d | nd.trailing.".........$qstring.= |
c620 | 20 73 75 62 73 74 72 28 24 71 73 74 72 69 6e 67 2c 20 31 2c 20 2d 31 29 3b 0a 0a 20 20 20 20 20 | .substr($qstring,.1,.-1);....... |
c640 | 20 20 20 2f 2f 20 50 65 72 66 6f 72 6d 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 20 20 20 72 65 74 | ...//.Perform.check..........ret |
c660 | 75 72 6e 20 21 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 2e 29 5b 5c 78 30 44 5c 5c 5c 5c 22 | urn.!(preg_match('/(.)[\x0D\\\\" |
c680 | 5d 2f 27 2c 20 24 71 73 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 20 26 26 20 24 6d 61 74 | ]/',.$qstring,.$matches).&&.$mat |
c6a0 | 63 68 65 73 5b 31 5d 20 21 3d 20 27 5c 5c 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a | ches[1].!=.'\\');.....}....../** |
c6c0 | 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 20 6d | ......*.Function.to.validate.a.m |
c6e0 | 61 69 6c 62 6f 78 2c 20 77 68 69 63 68 20 69 73 3a 0a 20 20 20 20 20 2a 20 6d 61 69 6c 62 6f 78 | ailbox,.which.is:......*.mailbox |
c700 | 20 3d 20 20 20 61 64 64 72 2d 73 70 65 63 20 20 20 20 20 20 20 20 20 3b 20 73 69 6d 70 6c 65 20 | .=...addr-spec.........;.simple. |
c720 | 61 64 64 72 65 73 73 0a 20 20 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 2f 20 70 68 72 61 73 | address......*.........../.phras |
c740 | 65 20 72 6f 75 74 65 2d 61 64 64 72 20 3b 20 6e 61 6d 65 20 61 6e 64 20 72 6f 75 74 65 2d 61 64 | e.route-addr.;.name.and.route-ad |
c760 | 64 72 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 75 62 6c 69 63 | dr......*.......*.@access.public |
c780 | 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 26 24 6d 61 69 6c 62 6f 78 20 | ......*.@param.string.&$mailbox. |
c7a0 | 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 | The.string.to.check.......*.@ret |
c7c0 | 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 53 75 63 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e 0a | urn.boolean.Success.or.failure.. |
c7e0 | 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4d 61 69 | .....*/.....function.validateMai |
c800 | 6c 62 6f 78 28 26 24 6d 61 69 6c 62 6f 78 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f | lbox(&$mailbox).....{.........// |
c820 | 20 41 20 63 6f 75 70 6c 65 20 6f 66 20 64 65 66 61 75 6c 74 73 2e 0a 20 20 20 20 20 20 20 20 24 | .A.couple.of.defaults..........$ |
c840 | 70 68 72 61 73 65 20 20 3d 20 27 27 3b 0a 20 20 20 20 20 20 20 20 24 63 6f 6d 6d 65 6e 74 20 3d | phrase..=.'';.........$comment.= |
c860 | 20 27 27 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 61 74 63 68 20 61 6e 79 20 52 46 43 38 32 | .'';..........//.Catch.any.RFC82 |
c880 | 32 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 73 74 6f 72 65 20 74 68 65 6d 20 73 65 70 61 72 61 | 2.comments.and.store.them.separa |
c8a0 | 74 65 6c 79 0a 20 20 20 20 20 20 20 20 24 5f 6d 61 69 6c 62 6f 78 20 3d 20 24 6d 61 69 6c 62 6f | tely.........$_mailbox.=.$mailbo |
c8c0 | 78 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 28 74 72 69 6d 28 24 5f | x;.........while.(strlen(trim($_ |
c8e0 | 6d 61 69 6c 62 6f 78 29 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 | mailbox)).>.0).{.............$pa |
c900 | 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 28 27 2c 20 24 5f 6d 61 69 6c 62 6f 78 29 3b 0a 20 | rts.=.explode('(',.$_mailbox);.. |
c920 | 20 20 20 20 20 20 20 20 20 20 20 24 62 65 66 6f 72 65 5f 63 6f 6d 6d 65 6e 74 20 3d 20 24 74 68 | ...........$before_comment.=.$th |
c940 | 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 28 27 29 3b 0a 20 20 | is->_splitCheck($parts,.'(');... |
c960 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 62 65 66 6f 72 65 5f 63 6f 6d 6d 65 6e 74 20 21 3d | ..........if.($before_comment.!= |
c980 | 20 24 5f 6d 61 69 6c 62 6f 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | .$_mailbox).{.................// |
c9a0 | 20 46 69 72 73 74 20 63 68 61 72 20 73 68 6f 75 6c 64 20 62 65 20 61 20 28 0a 20 20 20 20 20 20 | .First.char.should.be.a.(....... |
c9c0 | 20 20 20 20 20 20 20 20 20 20 24 63 6f 6d 6d 65 6e 74 20 20 20 20 3d 20 73 75 62 73 74 72 28 73 | ..........$comment....=.substr(s |
c9e0 | 74 72 5f 72 65 70 6c 61 63 65 28 24 62 65 66 6f 72 65 5f 63 6f 6d 6d 65 6e 74 2c 20 27 27 2c 20 | tr_replace($before_comment,.'',. |
ca00 | 24 5f 6d 61 69 6c 62 6f 78 29 2c 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | $_mailbox),.1);................. |
ca20 | 24 70 61 72 74 73 20 20 20 20 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 29 27 2c 20 24 63 6f 6d 6d | $parts......=.explode(')',.$comm |
ca40 | 65 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6d 6d 65 6e 74 20 20 | ent);.................$comment.. |
ca60 | 20 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 | ..=.$this->_splitCheck($parts,.' |
ca80 | 29 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f 6d 6d 65 6e 74 73 5b 5d | )');.................$comments[] |
caa0 | 20 3d 20 24 63 6f 6d 6d 65 6e 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | .=.$comment;..................// |
cac0 | 20 2b 31 20 69 73 20 66 6f 72 20 74 68 65 20 74 72 61 69 6c 69 6e 67 20 29 0a 20 20 20 20 20 20 | .+1.is.for.the.trailing.)....... |
cae0 | 20 20 20 20 20 20 20 20 20 20 24 5f 6d 61 69 6c 62 6f 78 20 20 20 3d 20 73 75 62 73 74 72 28 24 | ..........$_mailbox...=.substr($ |
cb00 | 5f 6d 61 69 6c 62 6f 78 2c 20 73 74 72 70 6f 73 28 24 5f 6d 61 69 6c 62 6f 78 2c 20 24 63 6f 6d | _mailbox,.strpos($_mailbox,.$com |
cb20 | 6d 65 6e 74 29 2b 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 65 6e 74 29 2b 31 29 3b 0a 20 20 20 20 20 | ment)+strlen($comment)+1);...... |
cb40 | 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 20 20 | .......}.else.{................. |
cb60 | 62 72 65 61 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 | break;.............}.........}.. |
cb80 | 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 63 6f 75 6e 74 28 40 24 63 6f 6d | ........for($i=0;.$i<count(@$com |
cba0 | 6d 65 6e 74 73 29 3b 20 24 69 2b 2b 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 61 69 6c | ments);.$i++){.............$mail |
cbc0 | 62 6f 78 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 28 27 2e 24 63 6f 6d 6d 65 6e 74 73 5b | box.=.str_replace('('.$comments[ |
cbe0 | 24 69 5d 2e 27 29 27 2c 20 27 27 2c 20 24 6d 61 69 6c 62 6f 78 29 3b 0a 20 20 20 20 20 20 20 20 | $i].')',.'',.$mailbox);......... |
cc00 | 7d 0a 20 20 20 20 20 20 20 20 24 6d 61 69 6c 62 6f 78 20 3d 20 74 72 69 6d 28 24 6d 61 69 6c 62 | }.........$mailbox.=.trim($mailb |
cc20 | 6f 78 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 6e 61 6d 65 20 | ox);..........//.Check.for.name. |
cc40 | 2b 20 72 6f 75 74 65 2d 61 64 64 72 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 | +.route-addr.........if.(substr( |
cc60 | 24 6d 61 69 6c 62 6f 78 2c 20 2d 31 29 20 3d 3d 20 27 3e 27 20 26 26 20 73 75 62 73 74 72 28 24 | $mailbox,.-1).==.'>'.&&.substr($ |
cc80 | 6d 61 69 6c 62 6f 78 2c 20 30 2c 20 31 29 20 21 3d 20 27 3c 27 29 20 7b 0a 20 20 20 20 20 20 20 | mailbox,.0,.1).!=.'<').{........ |
cca0 | 20 20 20 20 20 24 70 61 72 74 73 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 3c 27 2c 20 24 6d 61 69 | .....$parts..=.explode('<',.$mai |
ccc0 | 6c 62 6f 78 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6e 61 6d 65 20 20 20 3d 20 24 74 68 | lbox);.............$name...=.$th |
cce0 | 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 3c 27 29 3b 0a 0a 20 | is->_splitCheck($parts,.'<');... |
cd00 | 20 20 20 20 20 20 20 20 20 20 20 24 70 68 72 61 73 65 20 20 20 20 20 3d 20 74 72 69 6d 28 24 6e | ...........$phrase.....=.trim($n |
cd20 | 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 75 74 65 5f 61 64 64 72 20 3d 20 | ame);.............$route_addr.=. |
cd40 | 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 69 6c 62 6f 78 2c 20 73 74 72 6c 65 6e 28 24 6e 61 | trim(substr($mailbox,.strlen($na |
cd60 | 6d 65 2e 27 3c 27 29 2c 20 2d 31 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | me.'<'),.-1));..............if.( |
cd80 | 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 50 68 72 61 73 65 28 24 70 68 72 61 73 65 29 20 | $this->_validatePhrase($phrase). |
cda0 | 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 28 24 72 6f 75 74 65 5f 61 64 64 72 20 3d 20 24 74 68 69 | ===.false.||.($route_addr.=.$thi |
cdc0 | 73 2d 3e 5f 76 61 6c 69 64 61 74 65 52 6f 75 74 65 41 64 64 72 28 24 72 6f 75 74 65 5f 61 64 64 | s->_validateRouteAddr($route_add |
cde0 | 72 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | r)).===.false).................r |
ce00 | 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 67 6f | eturn.false;..........//.Only.go |
ce20 | 74 20 61 64 64 72 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 | t.addr-spec.........}.else.{.... |
ce40 | 20 20 20 20 20 20 20 20 20 2f 2f 20 46 69 72 73 74 20 73 6e 69 70 20 61 6e 67 6c 65 20 62 72 61 | .........//.First.snip.angle.bra |
ce60 | 63 6b 65 74 73 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | ckets.if.present..............if |
ce80 | 20 28 73 75 62 73 74 72 28 24 6d 61 69 6c 62 6f 78 2c 30 2c 31 29 20 3d 3d 20 27 3c 27 20 26 26 | .(substr($mailbox,0,1).==.'<'.&& |
cea0 | 20 73 75 62 73 74 72 28 24 6d 61 69 6c 62 6f 78 2c 2d 31 29 20 3d 3d 20 27 3e 27 29 0a 20 20 20 | .substr($mailbox,-1).==.'>').... |
cec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 5f 73 70 65 63 20 3d 20 73 75 62 73 74 72 | .............$addr_spec.=.substr |
cee0 | 28 24 6d 61 69 6c 62 6f 78 2c 31 2c 2d 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 | ($mailbox,1,-1);.............els |
cf00 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 72 5f 73 70 65 63 20 3d 20 24 | e.................$addr_spec.=.$ |
cf20 | 6d 61 69 6c 62 6f 78 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 24 61 64 64 72 | mailbox;..............if.(($addr |
cf40 | 5f 73 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 41 64 64 72 53 70 65 63 | _spec.=.$this->_validateAddrSpec |
cf60 | 28 24 61 64 64 72 5f 73 70 65 63 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 | ($addr_spec)).===.false)........ |
cf80 | 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 20 20 20 20 20 20 7d | .........return.false;.........} |
cfa0 | 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 6f 62 6a 65 63 | ..........//.Construct.the.objec |
cfc0 | 74 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 0a 20 20 20 20 20 20 20 | t.that.will.be.returned......... |
cfe0 | 20 24 6d 62 6f 78 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 28 29 3b 0a 0a 20 20 20 20 20 20 | .$mbox.=.new.stdClass();........ |
d000 | 20 20 2f 2f 20 41 64 64 20 74 68 65 20 70 68 72 61 73 65 20 28 65 76 65 6e 20 69 66 20 65 6d 70 | ..//.Add.the.phrase.(even.if.emp |
d020 | 74 79 29 20 61 6e 64 20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 24 6d 62 6f 78 2d 3e | ty).and.comments.........$mbox-> |
d040 | 70 65 72 73 6f 6e 61 6c 20 3d 20 24 70 68 72 61 73 65 3b 0a 20 20 20 20 20 20 20 20 24 6d 62 6f | personal.=.$phrase;.........$mbo |
d060 | 78 2d 3e 63 6f 6d 6d 65 6e 74 20 20 3d 20 69 73 73 65 74 28 24 63 6f 6d 6d 65 6e 74 73 29 20 3f | x->comment..=.isset($comments).? |
d080 | 20 24 63 6f 6d 6d 65 6e 74 73 20 3a 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 | .$comments.:.array();..........i |
d0a0 | 66 20 28 69 73 73 65 74 28 24 72 6f 75 74 65 5f 61 64 64 72 29 29 20 7b 0a 20 20 20 20 20 20 20 | f.(isset($route_addr)).{........ |
d0c0 | 20 20 20 20 20 24 6d 62 6f 78 2d 3e 6d 61 69 6c 62 6f 78 20 3d 20 24 72 6f 75 74 65 5f 61 64 64 | .....$mbox->mailbox.=.$route_add |
d0e0 | 72 5b 27 6c 6f 63 61 6c 5f 70 61 72 74 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 62 | r['local_part'];.............$mb |
d100 | 6f 78 2d 3e 68 6f 73 74 20 20 20 20 3d 20 24 72 6f 75 74 65 5f 61 64 64 72 5b 27 64 6f 6d 61 69 | ox->host....=.$route_addr['domai |
d120 | 6e 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 75 74 65 5f 61 64 64 72 5b 27 61 64 | n'];.............$route_addr['ad |
d140 | 6c 27 5d 20 21 3d 3d 20 27 27 20 3f 20 24 6d 62 6f 78 2d 3e 61 64 6c 20 3d 20 24 72 6f 75 74 65 | l'].!==.''.?.$mbox->adl.=.$route |
d160 | 5f 61 64 64 72 5b 27 61 64 6c 27 5d 20 3a 20 27 27 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 | _addr['adl'].:.'';.........}.els |
d180 | 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 62 6f 78 2d 3e 6d 61 69 6c 62 6f 78 20 3d | e.{.............$mbox->mailbox.= |
d1a0 | 20 24 61 64 64 72 5f 73 70 65 63 5b 27 6c 6f 63 61 6c 5f 70 61 72 74 27 5d 3b 0a 20 20 20 20 20 | .$addr_spec['local_part'];...... |
d1c0 | 20 20 20 20 20 20 20 24 6d 62 6f 78 2d 3e 68 6f 73 74 20 20 20 20 3d 20 24 61 64 64 72 5f 73 70 | .......$mbox->host....=.$addr_sp |
d1e0 | 65 63 5b 27 64 6f 6d 61 69 6e 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 | ec['domain'];.........}......... |
d200 | 20 24 6d 61 69 6c 62 6f 78 20 3d 20 24 6d 62 6f 78 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 | .$mailbox.=.$mbox;.........retur |
d220 | 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 54 68 | n.true;.....}....../**......*.Th |
d240 | 69 73 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 73 20 61 20 72 6f 75 74 65 2d 61 64 | is.function.validates.a.route-ad |
d260 | 64 72 20 77 68 69 63 68 20 69 73 3a 0a 20 20 20 20 20 2a 20 72 6f 75 74 65 2d 61 64 64 72 20 3d | dr.which.is:......*.route-addr.= |
d280 | 20 22 3c 22 20 5b 72 6f 75 74 65 5d 20 61 64 64 72 2d 73 70 65 63 20 22 3e 22 0a 20 20 20 20 20 | ."<".[route].addr-spec.">"...... |
d2a0 | 2a 0a 20 20 20 20 20 2a 20 41 6e 67 6c 65 20 62 72 61 63 6b 65 74 73 20 68 61 76 65 20 61 6c 72 | *......*.Angle.brackets.have.alr |
d2c0 | 65 61 64 79 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 6f | eady.been.removed.at.the.point.o |
d2e0 | 66 0a 20 20 20 20 20 2a 20 67 65 74 74 69 6e 67 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f | f......*.getting.to.this.functio |
d300 | 6e 2e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 72 69 76 61 74 | n.......*.......*.@access.privat |
d320 | 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 72 6f 75 74 65 5f 61 64 | e......*.@param.string.$route_ad |
d340 | 64 72 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 | dr.The.string.to.check.......*.@ |
d360 | 72 65 74 75 72 6e 20 6d 69 78 65 64 20 46 61 6c 73 65 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 6f | return.mixed.False.on.failure,.o |
d380 | 72 20 61 6e 20 61 72 72 61 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 76 61 6c 69 64 61 74 65 64 20 | r.an.array.containing.validated. |
d3a0 | 61 64 64 72 65 73 73 2f 72 6f 75 74 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 73 75 63 | address/route.information.on.suc |
d3c0 | 63 65 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 | cess.......*/.....function._vali |
d3e0 | 64 61 74 65 52 6f 75 74 65 41 64 64 72 28 24 72 6f 75 74 65 5f 61 64 64 72 29 0a 20 20 20 20 7b | dateRouteAddr($route_addr).....{ |
d400 | 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 63 6f 6c 6f 6e 2e 0a 20 20 20 | .........//.Check.for.colon..... |
d420 | 20 20 20 20 20 69 66 20 28 73 74 72 70 6f 73 28 24 72 6f 75 74 65 5f 61 64 64 72 2c 20 27 3a 27 | .....if.(strpos($route_addr,.':' |
d440 | 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 74 | ).!==.false).{.............$part |
d460 | 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 6f 75 74 65 5f 61 64 64 72 29 3b 0a 20 | s.=.explode(':',.$route_addr);.. |
d480 | 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 75 74 65 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 | ...........$route.=.$this->_spli |
d4a0 | 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 3a 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 | tCheck($parts,.':');.........}.e |
d4c0 | 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 6f 75 74 65 20 3d 20 24 72 6f 75 74 | lse.{.............$route.=.$rout |
d4e0 | 65 5f 61 64 64 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 66 | e_addr;.........}..........//.If |
d500 | 20 24 72 6f 75 74 65 20 69 73 20 73 61 6d 65 20 61 73 20 24 72 6f 75 74 65 5f 61 64 64 72 20 74 | .$route.is.same.as.$route_addr.t |
d520 | 68 65 6e 20 74 68 65 20 63 6f 6c 6f 6e 20 77 61 73 20 69 6e 0a 20 20 20 20 20 20 20 20 2f 2f 20 | hen.the.colon.was.in.........//. |
d540 | 71 75 6f 74 65 73 20 6f 72 20 62 72 61 63 6b 65 74 73 20 6f 72 2c 20 6f 66 20 63 6f 75 72 73 65 | quotes.or.brackets.or,.of.course |
d560 | 2c 20 6e 6f 6e 20 65 78 69 73 74 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 72 6f 75 | ,.non.existent..........if.($rou |
d580 | 74 65 20 3d 3d 3d 20 24 72 6f 75 74 65 5f 61 64 64 72 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | te.===.$route_addr){............ |
d5a0 | 20 75 6e 73 65 74 28 24 72 6f 75 74 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 64 64 | .unset($route);.............$add |
d5c0 | 72 5f 73 70 65 63 20 3d 20 24 72 6f 75 74 65 5f 61 64 64 72 3b 0a 20 20 20 20 20 20 20 20 20 20 | r_spec.=.$route_addr;........... |
d5e0 | 20 20 69 66 20 28 28 24 61 64 64 72 5f 73 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 | ..if.(($addr_spec.=.$this->_vali |
d600 | 64 61 74 65 41 64 64 72 53 70 65 63 28 24 61 64 64 72 5f 73 70 65 63 29 29 20 3d 3d 3d 20 66 61 | dateAddrSpec($addr_spec)).===.fa |
d620 | 6c 73 65 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 66 61 | lse).{.................return.fa |
d640 | 6c 73 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 7d 20 65 6c 73 | lse;.............}.........}.els |
d660 | 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 56 61 6c 69 64 61 74 65 20 72 6f 75 74 | e.{.............//.Validate.rout |
d680 | 65 20 70 61 72 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 24 72 6f 75 74 65 20 | e.part..............if.(($route. |
d6a0 | 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 52 6f 75 74 65 28 24 72 6f 75 74 65 29 29 | =.$this->_validateRoute($route)) |
d6c0 | 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | .===.false).{.................re |
d6e0 | 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | turn.false;.............}....... |
d700 | 20 20 20 20 20 20 20 24 61 64 64 72 5f 73 70 65 63 20 3d 20 73 75 62 73 74 72 28 24 72 6f 75 74 | .......$addr_spec.=.substr($rout |
d720 | 65 5f 61 64 64 72 2c 20 73 74 72 6c 65 6e 28 24 72 6f 75 74 65 20 2e 20 27 3a 27 29 29 3b 0a 0a | e_addr,.strlen($route...':'));.. |
d740 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 56 61 6c 69 64 61 74 65 20 61 64 64 72 2d 73 70 65 | ............//.Validate.addr-spe |
d760 | 63 20 70 61 72 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 24 61 64 64 72 5f 73 | c.part..............if.(($addr_s |
d780 | 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 41 64 64 72 53 70 65 63 28 24 | pec.=.$this->_validateAddrSpec($ |
d7a0 | 61 64 64 72 5f 73 70 65 63 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 | addr_spec)).===.false).{........ |
d7c0 | 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 20 20 20 20 20 20 20 | .........return.false;.......... |
d7e0 | 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 | ...}.........}..........if.(isse |
d800 | 74 28 24 72 6f 75 74 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 74 75 72 6e | t($route)).{.............$return |
d820 | 5b 27 61 64 6c 27 5d 20 3d 20 24 72 6f 75 74 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 | ['adl'].=.$route;.........}.else |
d840 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 65 74 75 72 6e 5b 27 61 64 6c 27 5d 20 3d 20 | .{.............$return['adl'].=. |
d860 | 27 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 72 65 74 75 72 6e 20 3d | '';.........}..........$return.= |
d880 | 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 74 75 72 6e 2c 20 24 61 64 64 72 5f 73 70 65 63 | .array_merge($return,.$addr_spec |
d8a0 | 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d | );.........return.$return;.....} |
d8c0 | 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 76 61 6c | ....../**......*.Function.to.val |
d8e0 | 69 64 61 74 65 20 61 20 72 6f 75 74 65 2c 20 77 68 69 63 68 20 69 73 3a 0a 20 20 20 20 20 2a 20 | idate.a.route,.which.is:......*. |
d900 | 72 6f 75 74 65 20 3d 20 31 23 28 22 40 22 20 64 6f 6d 61 69 6e 29 20 22 3a 22 0a 20 20 20 20 20 | route.=.1#("@".domain).":"...... |
d920 | 2a 20 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 | *.......*.@access.private......* |
d940 | 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 72 6f 75 74 65 20 54 68 65 20 73 74 72 69 6e 67 | .@param.string.$route.The.string |
d960 | 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 | .to.check.......*.@return.mixed. |
d980 | 46 61 6c 73 65 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 68 65 20 76 61 6c 69 64 61 74 | False.on.failure,.or.the.validat |
d9a0 | 65 64 20 24 72 6f 75 74 65 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 | ed.$route.on.success.......*/... |
d9c0 | 20 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 52 6f 75 74 65 28 24 72 6f 75 74 65 | ..function._validateRoute($route |
d9e0 | 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 70 6c 69 74 20 6f 6e 20 63 6f 6d 6d | ).....{.........//.Split.on.comm |
da00 | 61 2e 0a 20 20 20 20 20 20 20 20 24 64 6f 6d 61 69 6e 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2c | a..........$domains.=.explode(', |
da20 | 27 2c 20 74 72 69 6d 28 24 72 6f 75 74 65 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 | ',.trim($route));..........for.( |
da40 | 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 24 64 6f 6d 61 69 6e 73 29 3b 20 24 69 | $i.=.0;.$i.<.count($domains);.$i |
da60 | 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 6f 6d 61 69 6e 73 5b 24 69 5d 20 3d | ++).{.............$domains[$i].= |
da80 | 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 40 27 2c 20 27 27 2c 20 74 72 69 6d 28 24 64 6f 6d 61 | .str_replace('@',.'',.trim($doma |
daa0 | 69 6e 73 5b 24 69 5d 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 | ins[$i]));.............if.(!$thi |
dac0 | 73 2d 3e 5f 76 61 6c 69 64 61 74 65 44 6f 6d 61 69 6e 28 24 64 6f 6d 61 69 6e 73 5b 24 69 5d 29 | s->_validateDomain($domains[$i]) |
dae0 | 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | ).return.false;.........}....... |
db00 | 20 20 20 72 65 74 75 72 6e 20 24 72 6f 75 74 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a | ...return.$route;.....}....../** |
db20 | 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 20 64 | ......*.Function.to.validate.a.d |
db40 | 6f 6d 61 69 6e 2c 20 74 68 6f 75 67 68 20 74 68 69 73 20 69 73 20 6e 6f 74 20 71 75 69 74 65 20 | omain,.though.this.is.not.quite. |
db60 | 77 68 61 74 0a 20 20 20 20 20 2a 20 79 6f 75 20 65 78 70 65 63 74 20 6f 66 20 61 20 73 74 72 69 | what......*.you.expect.of.a.stri |
db80 | 63 74 20 69 6e 74 65 72 6e 65 74 20 64 6f 6d 61 69 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 | ct.internet.domain.......*...... |
dba0 | 2a 20 64 6f 6d 61 69 6e 20 3d 20 73 75 62 2d 64 6f 6d 61 69 6e 20 2a 28 22 2e 22 20 73 75 62 2d | *.domain.=.sub-domain.*(".".sub- |
dbc0 | 64 6f 6d 61 69 6e 29 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 65 73 73 20 70 | domain)......*.......*.@access.p |
dbe0 | 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 64 6f 6d | rivate......*.@param.string.$dom |
dc00 | 61 69 6e 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 | ain.The.string.to.check.......*. |
dc20 | 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 46 61 6c 73 65 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 | @return.mixed.False.on.failure,. |
dc40 | 6f 72 20 74 68 65 20 76 61 6c 69 64 61 74 65 64 20 64 6f 6d 61 69 6e 20 6f 6e 20 73 75 63 63 65 | or.the.validated.domain.on.succe |
dc60 | 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 | ss.......*/.....function._valida |
dc80 | 74 65 44 6f 6d 61 69 6e 28 24 64 6f 6d 61 69 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 | teDomain($domain).....{......... |
dca0 | 2f 2f 20 4e 6f 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 75 73 65 20 6f 66 20 24 73 75 | //.Note.the.different.use.of.$su |
dcc0 | 62 64 6f 6d 61 69 6e 73 20 61 6e 64 20 24 73 75 62 5f 64 6f 6d 61 69 6e 73 20 20 20 20 20 20 20 | bdomains.and.$sub_domains....... |
dce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 73 75 62 64 6f | ..........................$subdo |
dd00 | 6d 61 69 6e 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 64 6f 6d 61 69 6e 29 3b 0a 0a | mains.=.explode('.',.$domain);.. |
dd20 | 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 73 75 62 64 6f 6d 61 69 6e 73 | ........while.(count($subdomains |
dd40 | 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 73 75 62 5f 64 6f 6d 61 69 6e | ).>.0).{.............$sub_domain |
dd60 | 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 73 75 62 64 6f 6d | s[].=.$this->_splitCheck($subdom |
dd80 | 61 69 6e 73 2c 20 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 | ains,.'.');.............for.($i. |
dda0 | 3d 20 30 3b 20 24 69 20 3c 20 24 74 68 69 73 2d 3e 69 6e 64 65 78 20 2b 20 31 3b 20 24 69 2b 2b | =.0;.$i.<.$this->index.+.1;.$i++ |
ddc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 73 | ).................array_shift($s |
dde0 | 75 62 64 6f 6d 61 69 6e 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 66 | ubdomains);.........}..........f |
de00 | 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 24 73 75 62 5f 64 6f 6d 61 | or.($i.=.0;.$i.<.count($sub_doma |
de20 | 69 6e 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 | ins);.$i++).{.............if.(!$ |
de40 | 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 53 75 62 64 6f 6d 61 69 6e 28 74 72 69 6d 28 24 73 | this->_validateSubdomain(trim($s |
de60 | 75 62 5f 64 6f 6d 61 69 6e 73 5b 24 69 5d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ub_domains[$i])))............... |
de80 | 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 | ..return.false;.........}....... |
dea0 | 20 20 20 2f 2f 20 4d 61 6e 61 67 65 64 20 74 6f 20 67 65 74 20 68 65 72 65 2c 20 73 6f 20 72 65 | ...//.Managed.to.get.here,.so.re |
dec0 | 74 75 72 6e 20 69 6e 70 75 74 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 6f 6d 61 | turn.input..........return.$doma |
dee0 | 69 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 | in;.....}....../**......*.Functi |
df00 | 6f 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 20 73 75 62 64 6f 6d 61 69 6e 3a 0a 20 20 20 20 | on.to.validate.a.subdomain:..... |
df20 | 20 2a 20 20 20 73 75 62 64 6f 6d 61 69 6e 20 3d 20 64 6f 6d 61 69 6e 2d 72 65 66 20 2f 20 64 6f | .*...subdomain.=.domain-ref./.do |
df40 | 6d 61 69 6e 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 | main-literal......*.......*.@acc |
df60 | 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 | ess.private......*.@param.string |
df80 | 20 24 73 75 62 64 6f 6d 61 69 6e 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 68 65 63 6b 2e | .$subdomain.The.string.to.check. |
dfa0 | 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 53 75 63 63 65 73 73 20 | ......*.@return.boolean.Success. |
dfc0 | 6f 72 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e | or.failure.......*/.....function |
dfe0 | 20 5f 76 61 6c 69 64 61 74 65 53 75 62 64 6f 6d 61 69 6e 28 24 73 75 62 64 6f 6d 61 69 6e 29 0a | ._validateSubdomain($subdomain). |
e000 | 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7c 5e | ....{.........if.(preg_match('|^ |
e020 | 5c 5b 28 2e 2a 29 5d 24 7c 27 2c 20 24 73 75 62 64 6f 6d 61 69 6e 2c 20 24 61 72 72 29 29 7b 0a | \[(.*)]$|',.$subdomain,.$arr)){. |
e040 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 | ............if.(!$this->_validat |
e060 | 65 44 6c 69 74 65 72 61 6c 28 24 61 72 72 5b 31 5d 29 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 | eDliteral($arr[1])).return.false |
e080 | 3b 0a 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 69 | ;.........}.else.{.............i |
e0a0 | 66 20 28 21 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 41 74 6f 6d 28 24 73 75 62 64 6f 6d | f.(!$this->_validateAtom($subdom |
e0c0 | 61 69 6e 29 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 | ain)).return.false;.........}... |
e0e0 | 20 20 20 20 20 20 20 2f 2f 20 47 6f 74 20 68 65 72 65 2c 20 73 6f 20 72 65 74 75 72 6e 20 73 75 | .......//.Got.here,.so.return.su |
e100 | 63 63 65 73 73 66 75 6c 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 | ccessful..........return.true;.. |
e120 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f | ...}....../**......*.Function.to |
e140 | 20 76 61 6c 69 64 61 74 65 20 61 20 64 6f 6d 61 69 6e 20 6c 69 74 65 72 61 6c 3a 0a 20 20 20 20 | .validate.a.domain.literal:..... |
e160 | 20 2a 20 20 20 64 6f 6d 61 69 6e 2d 6c 69 74 65 72 61 6c 20 3d 20 20 22 5b 22 20 2a 28 64 74 65 | .*...domain-literal.=.."[".*(dte |
e180 | 78 74 20 2f 20 71 75 6f 74 65 64 2d 70 61 69 72 29 20 22 5d 22 0a 20 20 20 20 20 2a 20 0a 20 20 | xt./.quoted-pair)."]"......*.... |
e1a0 | 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 40 70 61 72 | ...*.@access.private......*.@par |
e1c0 | 61 6d 20 73 74 72 69 6e 67 20 24 64 6c 69 74 65 72 61 6c 20 54 68 65 20 73 74 72 69 6e 67 20 74 | am.string.$dliteral.The.string.t |
e1e0 | 6f 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 | o.check.......*.@return.boolean. |
e200 | 53 75 63 63 65 73 73 20 6f 72 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 | Success.or.failure.......*/..... |
e220 | 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 44 6c 69 74 65 72 61 6c 28 24 64 6c 69 74 | function._validateDliteral($dlit |
e240 | 65 72 61 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 21 70 72 65 67 | eral).....{.........return.!preg |
e260 | 5f 6d 61 74 63 68 28 27 2f 28 2e 29 5b 5d 5b 5c 78 30 44 5c 5c 5c 5c 5d 2f 27 2c 20 24 64 6c 69 | _match('/(.)[][\x0D\\\\]/',.$dli |
e280 | 74 65 72 61 6c 2c 20 24 6d 61 74 63 68 65 73 29 20 26 26 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 | teral,.$matches).&&.$matches[1]. |
e2a0 | 21 3d 20 27 5c 5c 27 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 | !=.'\\';.....}....../**......*.F |
e2c0 | 75 6e 63 74 69 6f 6e 20 74 6f 20 76 61 6c 69 64 61 74 65 20 61 6e 20 61 64 64 72 2d 73 70 65 63 | unction.to.validate.an.addr-spec |
e2e0 | 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 61 64 64 72 2d 73 70 65 63 20 3d 20 6c 6f 63 61 | .......*......*.addr-spec.=.loca |
e300 | 6c 2d 70 61 72 74 20 22 40 22 20 64 6f 6d 61 69 6e 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a | l-part."@".domain......*.......* |
e320 | 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 70 61 72 61 6d 20 73 | .@access.private......*.@param.s |
e340 | 74 72 69 6e 67 20 24 61 64 64 72 5f 73 70 65 63 20 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 63 | tring.$addr_spec.The.string.to.c |
e360 | 68 65 63 6b 2e 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 46 61 6c 73 65 | heck.......*.@return.mixed.False |
e380 | 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 68 65 20 76 61 6c 69 64 61 74 65 64 20 61 64 | .on.failure,.or.the.validated.ad |
e3a0 | 64 72 2d 73 70 65 63 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 | dr-spec.on.success.......*/..... |
e3c0 | 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 41 64 64 72 53 70 65 63 28 24 61 64 64 72 | function._validateAddrSpec($addr |
e3e0 | 5f 73 70 65 63 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 72 5f 73 70 65 63 20 | _spec).....{.........$addr_spec. |
e400 | 3d 20 74 72 69 6d 28 24 61 64 64 72 5f 73 70 65 63 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 | =.trim($addr_spec);..........//. |
e420 | 53 70 6c 69 74 20 6f 6e 20 40 20 73 69 67 6e 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65 2e | Split.on.@.sign.if.there.is.one. |
e440 | 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 70 6f 73 28 24 61 64 64 72 5f 73 70 65 63 2c 20 | .........if.(strpos($addr_spec,. |
e460 | 27 40 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 70 | '@').!==.false).{.............$p |
e480 | 61 72 74 73 20 20 20 20 20 20 3d 20 65 78 70 6c 6f 64 65 28 27 40 27 2c 20 24 61 64 64 72 5f 73 | arts......=.explode('@',.$addr_s |
e4a0 | 70 65 63 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 63 61 6c 5f 70 61 72 74 20 3d 20 | pec);.............$local_part.=. |
e4c0 | 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 72 74 73 2c 20 27 40 27 29 3b | $this->_splitCheck($parts,.'@'); |
e4e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 6f 6d 61 69 6e 20 20 20 20 20 3d 20 73 75 62 73 74 | .............$domain.....=.subst |
e500 | 72 28 24 61 64 64 72 5f 73 70 65 63 2c 20 73 74 72 6c 65 6e 28 24 6c 6f 63 61 6c 5f 70 61 72 74 | r($addr_spec,.strlen($local_part |
e520 | 20 2e 20 27 40 27 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 20 40 20 73 69 67 6e 20 | ...'@'));..........//.No.@.sign. |
e540 | 73 6f 20 61 73 73 75 6d 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 64 6f 6d 61 69 6e 2e 0a 20 20 | so.assume.the.default.domain.... |
e560 | 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 24 6c 6f 63 61 | ......}.else.{.............$loca |
e580 | 6c 5f 70 61 72 74 20 3d 20 24 61 64 64 72 5f 73 70 65 63 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | l_part.=.$addr_spec;............ |
e5a0 | 20 24 64 6f 6d 61 69 6e 20 20 20 20 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 5f 64 6f | .$domain.....=.$this->default_do |
e5c0 | 6d 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 6c | main;.........}..........if.(($l |
e5e0 | 6f 63 61 6c 5f 70 61 72 74 20 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 4c 6f 63 61 | ocal_part.=.$this->_validateLoca |
e600 | 6c 50 61 72 74 28 24 6c 6f 63 61 6c 5f 70 61 72 74 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 72 | lPart($local_part)).===.false).r |
e620 | 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 64 6f 6d 61 69 | eturn.false;.........if.(($domai |
e640 | 6e 20 20 20 20 20 3d 20 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 44 6f 6d 61 69 6e 28 24 | n.....=.$this->_validateDomain($ |
e660 | 64 6f 6d 61 69 6e 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 | domain)).===.false).return.false |
e680 | 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 47 6f 74 20 68 65 72 65 20 73 | ;..................//.Got.here.s |
e6a0 | 6f 20 72 65 74 75 72 6e 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 20 20 20 20 20 20 20 20 72 65 74 | o.return.successful..........ret |
e6c0 | 75 72 6e 20 61 72 72 61 79 28 27 6c 6f 63 61 6c 5f 70 61 72 74 27 20 3d 3e 20 24 6c 6f 63 61 6c | urn.array('local_part'.=>.$local |
e6e0 | 5f 70 61 72 74 2c 20 27 64 6f 6d 61 69 6e 27 20 3d 3e 20 24 64 6f 6d 61 69 6e 29 3b 0a 20 20 20 | _part,.'domain'.=>.$domain);.... |
e700 | 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 76 | .}....../**......*.Function.to.v |
e720 | 61 6c 69 64 61 74 65 20 74 68 65 20 6c 6f 63 61 6c 20 70 61 72 74 20 6f 66 20 61 6e 20 61 64 64 | alidate.the.local.part.of.an.add |
e740 | 72 65 73 73 3a 0a 20 20 20 20 20 2a 20 20 20 6c 6f 63 61 6c 2d 70 61 72 74 20 3d 20 77 6f 72 64 | ress:......*...local-part.=.word |
e760 | 20 2a 28 22 2e 22 20 77 6f 72 64 29 0a 20 20 20 20 20 2a 20 0a 20 20 20 20 20 2a 20 40 61 63 63 | .*(".".word)......*.......*.@acc |
e780 | 65 73 73 20 70 72 69 76 61 74 65 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 | ess.private......*.@param.string |
e7a0 | 20 24 6c 6f 63 61 6c 5f 70 61 72 74 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 | .$local_part......*.@return.mixe |
e7c0 | 64 20 46 61 6c 73 65 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 6f 72 20 74 68 65 20 76 61 6c 69 64 | d.False.on.failure,.or.the.valid |
e7e0 | 61 74 65 64 20 6c 6f 63 61 6c 20 70 61 72 74 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 20 20 20 20 | ated.local.part.on.success...... |
e800 | 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 76 61 6c 69 64 61 74 65 4c 6f 63 61 6c 50 | .*/.....function._validateLocalP |
e820 | 61 72 74 28 24 6c 6f 63 61 6c 5f 70 61 72 74 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 | art($local_part).....{.........$ |
e840 | 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6c 6f 63 61 6c 5f 70 61 72 74 | parts.=.explode('.',.$local_part |
e860 | 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 70 6c 69 74 20 74 68 65 20 6c 6f 63 61 6c 5f 70 | );..........//.Split.the.local_p |
e880 | 61 72 74 20 69 6e 74 6f 20 77 6f 72 64 73 2e 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 | art.into.words..........while.(c |
e8a0 | 6f 75 6e 74 28 24 70 61 72 74 73 29 20 3e 20 30 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 | ount($parts).>.0){.............$ |
e8c0 | 77 6f 72 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 5f 73 70 6c 69 74 43 68 65 63 6b 28 24 70 61 | words[].=.$this->_splitCheck($pa |
e8e0 | 72 74 73 2c 20 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d | rts,.'.');.............for.($i.= |
e900 | 20 30 3b 20 24 69 20 3c 20 24 74 68 69 73 2d 3e 69 6e 64 65 78 20 2b 20 31 3b 20 24 69 2b 2b 29 | .0;.$i.<.$this->index.+.1;.$i++) |
e920 | 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 | .{.................array_shift($ |
e940 | 70 61 72 74 73 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 7d 0a | parts);.............}.........}. |
e960 | 0a 20 20 20 20 20 20 20 20 2f 2f 20 56 61 6c 69 64 61 74 65 20 65 61 63 68 20 77 6f 72 64 2e 0a | .........//.Validate.each.word.. |
e980 | 20 20 20 20 20 20 20 20 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 | ........for.($i.=.0;.$i.<.count( |
e9a0 | 24 77 6f 72 64 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | $words);.$i++).{.............if. |
e9c0 | 28 24 74 68 69 73 2d 3e 5f 76 61 6c 69 64 61 74 65 50 68 72 61 73 65 28 74 72 69 6d 28 24 77 6f | ($this->_validatePhrase(trim($wo |
e9e0 | 72 64 73 5b 24 69 5d 29 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 72 65 74 75 72 6e 20 66 61 6c 73 | rds[$i])).===.false).return.fals |
ea00 | 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4d 61 6e 61 67 65 64 | e;.........}..........//.Managed |
ea20 | 20 74 6f 20 67 65 74 20 68 65 72 65 2c 20 73 6f 20 72 65 74 75 72 6e 20 74 68 65 20 69 6e 70 75 | .to.get.here,.so.return.the.inpu |
ea40 | 74 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 6c 6f 63 61 6c 5f 70 61 72 74 3b 0a 20 | t..........return.$local_part;.. |
ea60 | 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6e 20 61 | ...}....../**.....*.Returns.an.a |
ea80 | 70 70 72 6f 78 69 6d 61 74 65 20 63 6f 75 6e 74 20 6f 66 20 68 6f 77 20 6d 61 6e 79 20 61 64 64 | pproximate.count.of.how.many.add |
eaa0 | 72 65 73 73 65 73 20 61 72 65 0a 20 20 20 20 2a 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 | resses.are.....*.in.the.given.st |
eac0 | 72 69 6e 67 2e 20 54 68 69 73 20 69 73 20 41 50 50 52 4f 58 49 4d 41 54 45 20 61 73 20 69 74 20 | ring..This.is.APPROXIMATE.as.it. |
eae0 | 6f 6e 6c 79 20 73 70 6c 69 74 73 0a 20 20 20 20 2a 20 62 61 73 65 64 20 6f 6e 20 61 20 63 6f 6d | only.splits.....*.based.on.a.com |
eb00 | 6d 61 20 77 68 69 63 68 20 68 61 73 20 6e 6f 20 70 72 65 63 65 64 69 6e 67 20 62 61 63 6b 73 6c | ma.which.has.no.preceding.backsl |
eb20 | 61 73 68 2e 20 43 6f 75 6c 64 20 62 65 0a 20 20 20 20 2a 20 75 73 65 66 75 6c 20 61 73 20 6c 61 | ash..Could.be.....*.useful.as.la |
eb40 | 72 67 65 20 61 6d 6f 75 6e 74 73 20 6f 66 20 61 64 64 72 65 73 73 65 73 20 77 69 6c 6c 20 65 6e | rge.amounts.of.addresses.will.en |
eb60 | 64 20 75 70 20 70 72 6f 64 75 63 69 6e 67 0a 20 20 20 20 2a 20 2a 6c 61 72 67 65 2a 20 73 74 72 | d.up.producing.....*.*large*.str |
eb80 | 75 63 74 75 72 65 73 20 77 68 65 6e 20 75 73 65 64 20 77 69 74 68 20 70 61 72 73 65 41 64 64 72 | uctures.when.used.with.parseAddr |
eba0 | 65 73 73 4c 69 73 74 28 29 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 73 | essList()......*.....*.@param..s |
ebc0 | 74 72 69 6e 67 20 24 64 61 74 61 20 41 64 64 72 65 73 73 65 73 20 74 6f 20 63 6f 75 6e 74 0a 20 | tring.$data.Addresses.to.count.. |
ebe0 | 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 6e 74 20 20 20 20 20 20 20 20 20 20 41 70 70 72 6f 78 | ...*.@return.int..........Approx |
ec00 | 69 6d 61 74 65 20 63 6f 75 6e 74 0a 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 | imate.count.....*/.....function. |
ec20 | 61 70 70 72 6f 78 69 6d 61 74 65 43 6f 75 6e 74 28 24 64 61 74 61 29 0a 20 20 20 20 7b 0a 20 20 | approximateCount($data).....{... |
ec40 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f | ......return.count(preg_split('/ |
ec60 | 28 3f 3c 21 5c 5c 5c 5c 29 2c 2f 27 2c 20 24 64 61 74 61 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 | (?<!\\\\),/',.$data));.....}.... |
ec80 | 20 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 2a 20 54 68 69 73 20 69 73 20 61 20 65 6d 61 69 6c 20 | ....../**.....*.This.is.a.email. |
eca0 | 76 61 6c 69 64 61 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 73 65 70 65 72 61 74 65 20 74 6f 20 | validating.function.seperate.to. |
ecc0 | 74 68 65 20 72 65 73 74 0a 20 20 20 20 2a 20 6f 66 20 74 68 65 20 63 6c 61 73 73 2e 20 49 74 20 | the.rest.....*.of.the.class..It. |
ece0 | 73 69 6d 70 6c 79 20 76 61 6c 69 64 61 74 65 73 20 77 68 65 74 68 65 72 20 61 6e 20 65 6d 61 69 | simply.validates.whether.an.emai |
ed00 | 6c 20 69 73 20 6f 66 0a 20 20 20 20 2a 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 69 6e 74 65 72 6e 65 | l.is.of.....*.the.common.interne |
ed20 | 74 20 66 6f 72 6d 3a 20 3c 75 73 65 72 3e 40 3c 64 6f 6d 61 69 6e 3e 2e 20 54 68 69 73 20 63 61 | t.form:.<user>@<domain>..This.ca |
ed40 | 6e 20 62 65 0a 20 20 20 20 2a 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f 72 20 6d 6f 73 74 20 70 | n.be.....*.sufficient.for.most.p |
ed60 | 65 6f 70 6c 65 2e 20 4f 70 74 69 6f 6e 61 6c 20 73 74 72 69 63 74 65 72 20 6d 6f 64 65 20 63 61 | eople..Optional.stricter.mode.ca |
ed80 | 6e 0a 20 20 20 20 2a 20 62 65 20 75 74 69 6c 69 73 65 64 20 77 68 69 63 68 20 72 65 73 74 72 69 | n.....*.be.utilised.which.restri |
eda0 | 63 74 73 20 6d 61 69 6c 62 6f 78 20 63 68 61 72 61 63 74 65 72 73 20 61 6c 6c 6f 77 65 64 0a 20 | cts.mailbox.characters.allowed.. |
edc0 | 20 20 20 2a 20 74 6f 20 61 6c 70 68 61 6e 75 6d 65 72 69 63 2c 20 66 75 6c 6c 20 73 74 6f 70 2c | ...*.to.alphanumeric,.full.stop, |
ede0 | 20 68 79 70 68 65 6e 20 61 6e 64 20 75 6e 64 65 72 73 63 6f 72 65 2e 0a 20 20 20 20 2a 0a 20 20 | .hyphen.and.underscore......*... |
ee00 | 20 20 2a 20 40 70 61 72 61 6d 20 20 73 74 72 69 6e 67 20 20 24 64 61 74 61 20 20 20 41 64 64 72 | ..*.@param..string..$data...Addr |
ee20 | 65 73 73 20 74 6f 20 63 68 65 63 6b 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 62 6f 6f 6c 65 | ess.to.check.....*.@param..boole |
ee40 | 61 6e 20 24 73 74 72 69 63 74 20 4f 70 74 69 6f 6e 61 6c 20 73 74 72 69 63 74 65 72 20 6d 6f 64 | an.$strict.Optional.stricter.mod |
ee60 | 65 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6d 69 78 65 64 20 20 20 20 20 20 20 20 20 20 20 | e.....*.@return.mixed........... |
ee80 | 46 61 6c 73 65 20 69 66 20 69 74 20 66 61 69 6c 73 2c 20 61 6e 20 69 6e 64 65 78 65 64 20 61 72 | False.if.it.fails,.an.indexed.ar |
eea0 | 72 61 79 0a 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 | ray.....*....................... |
eec0 | 20 20 75 73 65 72 6e 61 6d 65 2f 64 6f 6d 61 69 6e 20 69 66 20 69 74 20 6d 61 74 63 68 65 73 0a | ..username/domain.if.it.matches. |
eee0 | 20 20 20 20 2a 2f 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 49 6e 65 74 41 | ....*/.....function.isValidInetA |
ef00 | 64 64 72 65 73 73 28 24 64 61 74 61 2c 20 24 73 74 72 69 63 74 20 3d 20 66 61 6c 73 65 29 0a 20 | ddress($data,.$strict.=.false).. |
ef20 | 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 65 67 65 78 20 3d 20 24 73 74 72 69 63 74 20 3f 20 | ...{.........$regex.=.$strict.?. |
ef40 | 27 2f 5e 28 5b 2e 30 2d 39 61 2d 7a 5f 2d 5d 2b 29 40 28 28 5b 30 2d 39 61 2d 7a 2d 5d 2b 5c 2e | '/^([.0-9a-z_-]+)@(([0-9a-z-]+\. |
ef60 | 29 2b 5b 30 2d 39 61 2d 7a 5d 7b 32 2c 34 7d 29 24 2f 69 27 20 3a 20 27 2f 5e 28 5b 2a 2b 21 2e | )+[0-9a-z]{2,4})$/i'.:.'/^([*+!. |
ef80 | 26 23 24 7c 5c 27 5c 5c 25 5c 2f 30 2d 39 61 2d 7a 5e 5f 60 7b 7d 3d 3f 7e 3a 2d 5d 2b 29 40 28 | &#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@( |
efa0 | 28 5b 30 2d 39 61 2d 7a 2d 5d 2b 5c 2e 29 2b 5b 30 2d 39 61 2d 7a 5d 7b 32 2c 34 7d 29 24 2f 69 | ([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i |
efc0 | 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 | ';.........if.(preg_match($regex |
efe0 | 2c 20 74 72 69 6d 28 24 64 61 74 61 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 20 20 20 20 | ,.trim($data),.$matches)).{..... |
f000 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 68 65 73 5b 31 5d | ........return.array($matches[1] |
f020 | 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b | ,.$matches[2]);.........}.else.{ |
f040 | 0a 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 20 20 20 | .............return.false;...... |
f060 | 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...}.....}.}.?>................. |
f080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |