Annotation of embedaddon/php/ext/standard/tests/mail/mail_include.inc, revision 1.1.1.2
1.1 misho 1: <?php
2: // Change these to make tests run successfully
3: $server = '{localhost}';
4: $default_mailbox = $server . "INBOX";
5: $domain = "example.com";
6: $admin_user = "webmaster"; // a user with admin access
7: $username = "$admin_user@$domain";
8: $password = 'p4ssw0rd';
9: $users = array("webmaster", "info", "admin", "foo"); // tests require 4 valid userids
10: $mailbox_prefix = "phpttest"; // name used for test mailbox
11:
12: /**
13: * Create a test mailbox and populate with msgs
14: *
15: * @para, string mailbox_suffix Suffix used to uniquely identify mailboxes
16: * @param int message_count number of test msgs to be written to new mailbox
17: *
1.1.1.2 ! misho 18: * @return IMAP stream to new mailbox on success; FALSE on failure
1.1 misho 19: */
20: function setup_test_mailbox($mailbox_suffix, $message_count, &$new_mailbox = null, $msg_type = "simple"){
21: global $server, $default_mailbox, $username, $password;
22:
23: // open a stream to default mailbox
24: $imap_stream = imap_open($default_mailbox, $username, $password);
25:
26: if ($imap_stream === false) {
27: echo "Cannot connect to IMAP server $server: " . imap_last_error() . "\n";
28: return false;
29: }
30:
31: echo "Create a temporary mailbox and add " . $message_count . " msgs\n";
32: $new_mailbox = create_mailbox($imap_stream, $mailbox_suffix, $message_count, $msg_type);
33: if ($new_mailbox === false) {
34: echo "Cant create a temporary mailbox: " . imap_last_error(). "\n";
35: return false;
36: }
37:
38: echo ".. mailbox '$new_mailbox' created\n";
39:
40: // reopen stream to new mailbox
41: if (imap_reopen($imap_stream, $new_mailbox) === false) {
42: echo "cant re-open '$new_mailbox' mailbox: " . imap_last_error() . "\n";
43: return false;
44: }
45:
46: return $imap_stream;
47: }
48:
49: /**
50: * Create mailbox and fill with generic emails
51: *
52: * @param resource $imap_stream
53: * @param string $mailbox
54: */
55: function create_mailbox($imap_stream, $mailbox_suffix, $message_count, $msg_type= "simple"){
56: global $default_mailbox, $mailbox_prefix;
57: $mailbox = $default_mailbox . "." . $mailbox_prefix . $mailbox_suffix;
58:
59: $mailboxes = imap_getmailboxes($imap_stream, $mailbox, '*');
60:
61: // check mailbox does not already exist
62: if ($mailboxes) {
63: foreach($mailboxes as $value) {
64: if ($value->name == $mailbox) {
65: exit ("TEST FAILED : Mailbox '$mailbox' already exists\n");
66: }
67: }
68: }
69:
70: if (imap_createmailbox($imap_stream, $mailbox) === false) {
71: return false;
72: }
73:
74: // Add number of test msgs requested
75: if ($message_count > 0) {
76: populate_mailbox($imap_stream, $mailbox, $message_count, $msg_type);
77: }
78:
79: return $mailbox;
80: }
81:
82: /**
83: * Populate a mailbox with generic emails
84: *
85: * @param resource $imap_stream
86: * @param string $mailbox
87: */
88: function populate_mailbox($imap_stream, $mailbox, $message_count, $msg_type = "simple"){
89:
90: global $users, $domain;
91:
92: for($i = 1; $i <= $message_count; $i++) {
93: if ($msg_type == "simple") {
94: $msg = "From: foo@anywhere.com\r\n"
95: . "To: $users[0]@$domain\r\n"
96: . "Subject: test$i\r\n"
97: . "\r\n"
98: . "$i: this is a test message, please ignore\r\n";
99: } else {
100: $envelope["from"]= "foo@anywhere.com";
101: $envelope["to"] = "$users[0]@$domain";
102: $envelope["subject"] = "Test msg $i";
103:
104: $part1["type"] = TYPEMULTIPART;
105: $part1["subtype"] = "mixed";
106:
107: $part2["type"] = TYPETEXT;
108: $part2["subtype"] = "plain";
109: $part2["description"] = "imap_mail_compose() function";
110: $part2["contents.data"] = "message 1:xxxxxxxxxxxxxxxxxxxxxxxxxx";
111:
112: $part3["type"] = TYPETEXT;
113: $part3["subtype"] = "plain";
114: $part3["description"] = "Example";
115: $part3["contents.data"] = "message 2:yyyyyyyyyyyyyyyyyyyyyyyyyy";
116:
117: $part4["type"] = TYPETEXT;
118: $part4["subtype"] = "plain";
119: $part4["description"] = "Return Values";
120: $part4["contents.data"] = "message 3:zzzzzzzzzzzzzzzzzzzzzzzzzz";
121:
122: $body[1] = $part1;
123: $body[2] = $part2;
124: $body[3] = $part3;
125: $body[4] = $part4;
126:
127: $msg = imap_mail_compose($envelope, $body);
128: }
129:
130: imap_append($imap_stream, $mailbox, $msg);
131: }
132: }
133:
134: /**
135: * Get the mailbox name from a mailbox decription, i.e strip off server details.
136: *
137: * @param string mailbox complete mailbox name
138: * @return mailbox name
139: */
140: function get_mailbox_name($mailbox){
141:
142: if (preg_match('/\{.*?\}(.*)/', $mailbox, $match) != 1) {
143: echo "Unrecpognized mailbox name\n";
144: return false;
145: }
146:
147: return $match[1];
148: }
149:
150: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>