PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 10.1.4
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v10.1.4
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
acymailing / vendor / javanile / php-imap2 / src / Functions.php

Functions.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 10.1.4, at vendor/javanile/php-imap2/src/Functions.php

171 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 namespace Javanile\Imap2;
5
6 class Functions
7 {
8 public static function parseMailboxString($mailbox)
9 {
10 $mailboxParts = explode('}', $mailbox);
11 $mailboxParts[0] = substr($mailboxParts[0], 1);
12
13 $values = parse_url($mailboxParts[0]);
14
15 $values['mailbox'] = $mailboxParts[1] ?? '';
16 $values['path'] = explode('/', $values['path']);
17
18 return $values;
19 }
20
21 public static function getHostFromMailbox($mailbox)
22 {
23 $mailboxParts = is_array($mailbox) ? $mailbox : self::parseMailboxString($mailbox);
24
25 return @$mailboxParts['host'];
26 }
27
28 public static function getSslModeFromMailbox($mailbox)
29 {
30 $mailboxParts = is_array($mailbox) ? $mailbox : self::parseMailboxString($mailbox);
31
32 if (in_array('ssl', $mailboxParts['path'])) {
33 return 'ssl';
34 }
35
36 return false;
37 }
38
39 public static function expectedNumberOfMessages($sequence)
40 {
41 if (strpos($sequence, ',') > 0) {
42 return count(explode(',', $sequence));
43 } elseif (strpos($sequence, ':') > 0) {
44 $range = explode(':', $sequence);
45 return $range[1] - $range[0];
46 } else {
47 return 1;
48 }
49 }
50
51 public static function unique()
52 {
53 return md5(microtime(). time() . rand(1000, 9999));
54 }
55
56 public static function getMailboxName($mailbox)
57 {
58 $mailboxParts = explode('}', $mailbox, 2);
59
60 return empty($mailboxParts[1]) ? 'INBOX' : $mailboxParts[1];
61 }
62
63 public static function sanitizeAddress($address, $defaultHost = 'UNKNOWN')
64 {
65 $addressList = imap_rfc822_parse_adrlist($address, $defaultHost);
66
67 $sanitizedAddress = [];
68 foreach ($addressList as $addressEntry) {
69 $sanitizedAddress[] = imap_rfc822_write_address($addressEntry->mailbox, $addressEntry->host, $addressEntry->personal);
70 }
71
72 return implode(', ', $sanitizedAddress);
73 }
74
75 public static function writeAddressFromEnvelope($addressList)
76 {
77 if (empty($addressList)) {
78 return null;
79 }
80
81 $sanitizedAddress = [];
82 foreach ($addressList as $addressEntry) {
83 $parsedAddressEntry = imap_rfc822_write_address($addressEntry[2], $addressEntry[3], $addressEntry[0]);
84 if (substr($parsedAddressEntry, -3) == '@""') {
85 $parsedAddressEntry = substr($parsedAddressEntry, 0, strlen($parsedAddressEntry) - 3).': ';
86 }
87 $sanitizedAddress[] = $parsedAddressEntry;
88 }
89
90 return implode(', ', $sanitizedAddress);
91 }
92
93 public static function getListAttributesValue($attributes)
94 {
95 $attributesValue = 0;
96
97 foreach ($attributes as $attribute) {
98 switch ($attribute) {
99 case '\\NoInferiors':
100 $attributesValue |= LATT_NOINFERIORS;
101 break;
102 case '\\NoSelect':
103 $attributesValue |= LATT_NOSELECT;
104 break;
105 case '\\Marked':
106 $attributesValue |= LATT_MARKED;
107 break;
108 case '\\UnMarked':
109 $attributesValue |= LATT_UNMARKED;
110 break;
111 case '\\Referral':
112 $attributesValue |= LATT_REFERRAL;
113 break;
114 case '\\HasChildren':
115 $attributesValue |= LATT_HASCHILDREN;
116 break;
117 case '\\HasNoChildren':
118 $attributesValue |= LATT_HASNOCHILDREN;
119 break;
120 }
121 }
122
123 return $attributesValue;
124 }
125
126 public static function isValidImap1Connection($imap)
127 {
128 return is_resource($imap) && get_resource_type($imap) == 'imap';
129 }
130
131 public static function isValidImap2Connection($imap)
132 {
133 return Connection::isValid($imap);
134 }
135
136 public static function getAddressObjectList($addressList, $defaultHost = 'UNKNOWN')
137 {
138 $addressObjectList = [];
139 foreach ($addressList as $toAddress) {
140 $email = explode('@', $toAddress->getEmail());
141
142 $addressObject = (object) [
143 'mailbox' => $email[0],
144 'host' => $email[1] ?? $defaultHost,
145 ];
146
147 $personal = $toAddress->getName();
148 if ($personal) {
149 $addressObject->personal = $personal;
150 }
151
152 $addressObjectList[] = $addressObject;
153 }
154
155 return $addressObjectList;
156 }
157
158 public static function isBackportCall($backtrace, $depth)
159 {
160 return isset($backtrace[$depth + 1]['function'])
161 && preg_match('/^imap_/', $backtrace[$depth + 1]['function'])
162 && preg_match('/^imap2_/', $backtrace[$depth]['function'])
163 && substr($backtrace[$depth + 1]['function'], 4) == substr($backtrace[$depth]['function'], 5);
164 }
165
166 public static function isRetrofitResource($imap)
167 {
168 return is_resource($imap) && get_resource_type($imap) == 'imap';
169 }
170 }
171