@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator

Update copy of external mimemailparser library to 9.0.1

Summary:
Bump our copy of external mimemailparser library from 8.0.4 to 9.0.1.
See https://github.com/php-mime-mail-parser/php-mime-mail-parser/releases for the upstream changelog.

Closes T16458

Test Plan: tbd

Reviewers: O1 Blessed Committers, mainframe98

Reviewed By: O1 Blessed Committers, mainframe98

Subscribers: mainframe98, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T16458

Differential Revision: https://we.phorge.it/D26685

+297 -259
+1 -1
externals/mimemailparser/Attachment.php
··· 241 241 case Parser::ATTACHMENT_RANDOM_FILENAME: 242 242 $fileInfo = pathinfo($this->getFilename()); 243 243 $extension = empty($fileInfo['extension']) ? '' : '.'.$fileInfo['extension']; 244 - $attachment_path = $attach_dir.uniqid().$extension; 244 + $attachment_path = $attach_dir.bin2hex(random_bytes(16)).$extension; 245 245 break; 246 246 case Parser::ATTACHMENT_DUPLICATE_THROW: 247 247 case Parser::ATTACHMENT_DUPLICATE_SUFFIX:
+285 -253
externals/mimemailparser/Charset.php
··· 12 12 'us-ascii' => 'us-ascii', 13 13 'ansi_x3.4-1968' => 'us-ascii', 14 14 '646' => 'us-ascii', 15 - 'iso-8859-1' => 'ISO-8859-1', 16 - 'iso-8859-2' => 'ISO-8859-2', 17 - 'iso-8859-3' => 'ISO-8859-3', 18 - 'iso-8859-4' => 'ISO-8859-4', 19 - 'iso-8859-5' => 'ISO-8859-5', 20 - 'iso-8859-6' => 'ISO-8859-6', 21 - 'iso-8859-6-i' => 'ISO-8859-6-I', 22 - 'iso-8859-6-e' => 'ISO-8859-6-E', 23 - 'iso-8859-7' => 'ISO-8859-7', 24 - 'iso-8859-8' => 'ISO-8859-8', 25 - 'iso-8859-8-i' => 'ISO-8859-8', 26 - 'iso-8859-8-e' => 'ISO-8859-8-E', 27 - 'iso-8859-9' => 'ISO-8859-9', 28 - 'iso-8859-10' => 'ISO-8859-10', 29 - 'iso-8859-11' => 'ISO-8859-11', 30 - 'iso-8859-13' => 'ISO-8859-13', 31 - 'iso-8859-14' => 'ISO-8859-14', 32 - 'iso-8859-15' => 'ISO-8859-15', 33 - 'iso-8859-16' => 'ISO-8859-16', 34 - 'iso-ir-111' => 'ISO-IR-111', 35 - 'iso-2022-cn' => 'ISO-2022-CN', 36 - 'iso-2022-cn-ext' => 'ISO-2022-CN', 37 - 'iso-2022-kr' => 'ISO-2022-KR', 38 - 'iso-2022-jp' => 'ISO-2022-JP', 39 - 'utf-16be' => 'UTF-16BE', 40 - 'utf-16le' => 'UTF-16LE', 41 - 'utf-16' => 'UTF-16', 15 + 'iso-8859-1' => 'iso-8859-1', 16 + 'iso-8859-2' => 'iso-8859-2', 17 + 'iso-8859-3' => 'iso-8859-3', 18 + 'iso-8859-4' => 'iso-8859-4', 19 + 'iso-8859-5' => 'iso-8859-5', 20 + 'iso-8859-6' => 'iso-8859-6', 21 + 'iso-8859-6-i' => 'iso-8859-6-i', 22 + 'iso-8859-6-e' => 'iso-8859-6-e', 23 + 'iso-8859-7' => 'iso-8859-7', 24 + 'iso-8859-8' => 'iso-8859-8', 25 + 'iso-8859-8-i' => 'iso-8859-8', 26 + 'iso-8859-8-e' => 'iso-8859-8-e', 27 + 'iso-8859-9' => 'iso-8859-9', 28 + 'iso-8859-10' => 'iso-8859-10', 29 + 'iso-8859-11' => 'iso-8859-11', 30 + 'iso-8859-13' => 'iso-8859-13', 31 + 'iso-8859-14' => 'iso-8859-14', 32 + 'iso-8859-15' => 'iso-8859-15', 33 + 'iso-8859-16' => 'iso-8859-16', 34 + 'iso-ir-111' => 'iso-ir-111', 35 + 'iso-2022-cn' => 'iso-2022-cn', 36 + 'iso-2022-cn-ext' => 'iso-2022-cn', 37 + 'iso-2022-kr' => 'iso-2022-kr', 38 + 'iso-2022-jp' => 'iso-2022-jp', 39 + 'utf-16be' => 'utf-16be', 40 + 'utf-16le' => 'utf-16le', 41 + 'utf-16' => 'utf-16', 42 42 'windows-1250' => 'windows-1250', 43 43 'windows-1251' => 'windows-1251', 44 44 'windows-1252' => 'windows-1252', ··· 48 48 'windows-1256' => 'windows-1256', 49 49 'windows-1257' => 'windows-1257', 50 50 'windows-1258' => 'windows-1258', 51 - 'ibm866' => 'IBM866', 52 - 'ibm850' => 'IBM850', 53 - 'ibm852' => 'IBM852', 54 - 'ibm855' => 'IBM855', 55 - 'ibm857' => 'IBM857', 56 - 'ibm862' => 'IBM862', 57 - 'ibm864' => 'IBM864', 58 - 'utf-8' => 'UTF-8', 59 - 'utf-7' => 'UTF-7', 60 - 'shift_jis' => 'Shift_JIS', 61 - 'big5' => 'Big5', 62 - 'euc-jp' => 'EUC-JP', 63 - 'euc-kr' => 'EUC-KR', 64 - 'gb2312' => 'GB2312', 51 + 'ibm866' => 'ibm866', 52 + 'ibm850' => 'ibm850', 53 + 'ibm852' => 'ibm852', 54 + 'ibm855' => 'ibm855', 55 + 'ibm857' => 'ibm857', 56 + 'ibm862' => 'ibm862', 57 + 'ibm864' => 'ibm864', 58 + 'utf-8' => 'utf-8', 59 + 'utf-7' => 'utf-7', 60 + 'shift_jis' => 'shift_jis', 61 + 'big5' => 'big5', 62 + 'euc-jp' => 'euc-jp', 63 + 'euc-kr' => 'euc-kr', 64 + 'gb2312' => 'gb2312', 65 65 'gb18030' => 'gb18030', 66 - 'viscii' => 'VISCII', 67 - 'koi8-r' => 'KOI8-R', 68 - 'koi8_r' => 'KOI8-R', 69 - 'cskoi8r' => 'KOI8-R', 70 - 'koi' => 'KOI8-R', 71 - 'koi8' => 'KOI8-R', 72 - 'koi8-u' => 'KOI8-U', 73 - 'tis-620' => 'TIS-620', 74 - 't.61-8bit' => 'T.61-8bit', 75 - 'hz-gb-2312' => 'HZ-GB-2312', 76 - 'big5-hkscs' => 'Big5-HKSCS', 66 + 'viscii' => 'viscii', 67 + 'koi8-r' => 'koi8-r', 68 + 'koi8_r' => 'koi8-r', 69 + 'cskoi8r' => 'koi8-r', 70 + 'koi' => 'koi8-r', 71 + 'koi8' => 'koi8-r', 72 + 'koi8-u' => 'koi8-u', 73 + 'tis-620' => 'tis-620', 74 + 't.61-8bit' => 't.61-8bit', 75 + 'hz-gb-2312' => 'hz-gb-2312', 76 + 'big5-hkscs' => 'big5-hkscs', 77 77 'gbk' => 'gbk', 78 78 'cns11643' => 'x-euc-tw', 79 79 'x-imap4-modified-utf7' => 'x-imap4-modified-utf7', 80 80 'x-euc-tw' => 'x-euc-tw', 81 - 'x-mac-ce' => 'x-mac-ce', 82 - 'x-mac-turkish' => 'x-mac-turkish', 83 - 'x-mac-greek' => 'x-mac-greek', 84 - 'x-mac-icelandic' => 'x-mac-icelandic', 85 - 'x-mac-croatian' => 'x-mac-croatian', 86 - 'x-mac-romanian' => 'x-mac-romanian', 87 - 'x-mac-cyrillic' => 'x-mac-cyrillic', 88 - 'x-mac-ukrainian' => 'x-mac-cyrillic', 89 - 'x-mac-hebrew' => 'x-mac-hebrew', 90 - 'x-mac-arabic' => 'x-mac-arabic', 91 - 'x-mac-farsi' => 'x-mac-farsi', 92 - 'x-mac-devanagari' => 'x-mac-devanagari', 93 - 'x-mac-gujarati' => 'x-mac-gujarati', 94 - 'x-mac-gurmukhi' => 'x-mac-gurmukhi', 81 + 'x-mac-ce' => 'macce', 82 + 'x-mac-turkish' => 'macturkish', 83 + 'x-mac-greek' => 'macgreek', 84 + 'x-mac-icelandic' => 'macicelandic', 85 + 'x-mac-croatian' => 'maccroatian', 86 + 'x-mac-romanian' => 'macromanian', 87 + 'x-mac-cyrillic' => 'maccyrillic', 88 + 'x-mac-ukrainian' => 'macukrainian', 89 + 'x-mac-hebrew' => 'machebrew', 90 + 'x-mac-arabic' => 'macarabic', 91 + 'x-mac-farsi' => 'macfarsi', 92 + 'x-mac-devanagari' => 'macdevanagari', 93 + 'x-mac-gujarati' => 'macgujarati', 94 + 'x-mac-gurmukhi' => 'macgurmukhi', 95 95 'armscii-8' => 'armscii-8', 96 96 'x-viet-tcvn5712' => 'x-viet-tcvn5712', 97 97 'x-viet-vps' => 'x-viet-vps', 98 - 'iso-10646-ucs-2' => 'UTF-16BE', 99 - 'x-iso-10646-ucs-2-be' => 'UTF-16BE', 100 - 'x-iso-10646-ucs-2-le' => 'UTF-16LE', 98 + 'iso-10646-ucs-2' => 'utf-16be', 99 + 'x-iso-10646-ucs-2-be' => 'utf-16be', 100 + 'x-iso-10646-ucs-2-le' => 'utf-16le', 101 101 'x-user-defined' => 'x-user-defined', 102 102 'x-johab' => 'x-johab', 103 - 'latin1' => 'ISO-8859-1', 104 - 'iso_8859-1' => 'ISO-8859-1', 105 - 'iso8859-1' => 'ISO-8859-1', 106 - 'iso8859-2' => 'ISO-8859-2', 107 - 'iso8859-3' => 'ISO-8859-3', 108 - 'iso8859-4' => 'ISO-8859-4', 109 - 'iso8859-5' => 'ISO-8859-5', 110 - 'iso8859-6' => 'ISO-8859-6', 111 - 'iso8859-7' => 'ISO-8859-7', 112 - 'iso8859-8' => 'ISO-8859-8', 113 - 'iso8859-9' => 'ISO-8859-9', 114 - 'iso8859-10' => 'ISO-8859-10', 115 - 'iso8859-11' => 'ISO-8859-11', 116 - 'iso8859-13' => 'ISO-8859-13', 117 - 'iso8859-14' => 'ISO-8859-14', 118 - 'iso8859-15' => 'ISO-8859-15', 119 - 'iso_8859-1:1987' => 'ISO-8859-1', 120 - 'iso-ir-100' => 'ISO-8859-1', 121 - 'l1' => 'ISO-8859-1', 122 - 'ibm819' => 'ISO-8859-1', 123 - 'cp819' => 'ISO-8859-1', 124 - 'csisolatin1' => 'ISO-8859-1', 125 - 'latin2' => 'ISO-8859-2', 126 - 'iso_8859-2' => 'ISO-8859-2', 127 - 'iso_8859-2:1987' => 'ISO-8859-2', 128 - 'iso-ir-101' => 'ISO-8859-2', 129 - 'l2' => 'ISO-8859-2', 130 - 'csisolatin2' => 'ISO-8859-2', 131 - 'latin3' => 'ISO-8859-3', 132 - 'iso_8859-3' => 'ISO-8859-3', 133 - 'iso_8859-3:1988' => 'ISO-8859-3', 134 - 'iso-ir-109' => 'ISO-8859-3', 135 - 'l3' => 'ISO-8859-3', 136 - 'csisolatin3' => 'ISO-8859-3', 137 - 'latin4' => 'ISO-8859-4', 138 - 'iso_8859-4' => 'ISO-8859-4', 139 - 'iso_8859-4:1988' => 'ISO-8859-4', 140 - 'iso-ir-110' => 'ISO-8859-4', 141 - 'l4' => 'ISO-8859-4', 142 - 'csisolatin4' => 'ISO-8859-4', 143 - 'cyrillic' => 'ISO-8859-5', 144 - 'iso_8859-5' => 'ISO-8859-5', 145 - 'iso_8859-5:1988' => 'ISO-8859-5', 146 - 'iso-ir-144' => 'ISO-8859-5', 147 - 'csisolatincyrillic' => 'ISO-8859-5', 148 - 'arabic' => 'ISO-8859-6', 149 - 'iso_8859-6' => 'ISO-8859-6', 150 - 'iso_8859-6:1987' => 'ISO-8859-6', 151 - 'iso-ir-127' => 'ISO-8859-6', 152 - 'ecma-114' => 'ISO-8859-6', 153 - 'asmo-708' => 'ISO-8859-6', 154 - 'csisolatinarabic' => 'ISO-8859-6', 155 - 'csiso88596i' => 'ISO-8859-6-I', 156 - 'csiso88596e' => 'ISO-8859-6-E', 157 - 'greek' => 'ISO-8859-7', 158 - 'greek8' => 'ISO-8859-7', 159 - 'sun_eu_greek' => 'ISO-8859-7', 160 - 'iso_8859-7' => 'ISO-8859-7', 161 - 'iso_8859-7:1987' => 'ISO-8859-7', 162 - 'iso-ir-126' => 'ISO-8859-7', 163 - 'elot_928' => 'ISO-8859-7', 164 - 'ecma-118' => 'ISO-8859-7', 165 - 'csisolatingreek' => 'ISO-8859-7', 166 - 'hebrew' => 'ISO-8859-8', 167 - 'iso_8859-8' => 'ISO-8859-8', 168 - 'visual' => 'ISO-8859-8', 169 - 'iso_8859-8:1988' => 'ISO-8859-8', 170 - 'iso-ir-138' => 'ISO-8859-8', 171 - 'csisolatinhebrew' => 'ISO-8859-8', 172 - 'csiso88598i' => 'ISO-8859-8', 173 - 'iso-8859-8i' => 'ISO-8859-8', 174 - 'logical' => 'ISO-8859-8', 175 - 'csiso88598e' => 'ISO-8859-8-E', 176 - 'latin5' => 'ISO-8859-9', 177 - 'iso_8859-9' => 'ISO-8859-9', 178 - 'iso_8859-9:1989' => 'ISO-8859-9', 179 - 'iso-ir-148' => 'ISO-8859-9', 180 - 'l5' => 'ISO-8859-9', 181 - 'csisolatin5' => 'ISO-8859-9', 182 - 'unicode-1-1-utf-8' => 'UTF-8', 183 - 'utf8' => 'UTF-8', 184 - 'x-sjis' => 'Shift_JIS', 185 - 'shift-jis' => 'Shift_JIS', 186 - 'ms_kanji' => 'Shift_JIS', 187 - 'csshiftjis' => 'Shift_JIS', 188 - 'windows-31j' => 'Shift_JIS', 189 - 'cp932' => 'Shift_JIS', 190 - 'sjis' => 'Shift_JIS', 191 - 'cseucpkdfmtjapanese' => 'EUC-JP', 192 - 'x-euc-jp' => 'EUC-JP', 193 - 'csiso2022jp' => 'ISO-2022-JP', 194 - 'iso-2022-jp-2' => 'ISO-2022-JP', 195 - 'csiso2022jp2' => 'ISO-2022-JP', 196 - 'csbig5' => 'Big5', 197 - 'cn-big5' => 'Big5', 198 - 'x-x-big5' => 'Big5', 199 - 'zh_tw-big5' => 'Big5', 200 - 'cseuckr' => 'EUC-KR', 201 - 'ks_c_5601-1987' => 'EUC-KR', 202 - 'iso-ir-149' => 'EUC-KR', 203 - 'ks_c_5601-1989' => 'EUC-KR', 204 - 'ksc_5601' => 'EUC-KR', 205 - 'ksc5601' => 'EUC-KR', 206 - 'korean' => 'EUC-KR', 207 - 'csksc56011987' => 'EUC-KR', 208 - '5601' => 'EUC-KR', 209 - 'windows-949' => 'EUC-KR', 210 - 'gb_2312-80' => 'GB2312', 211 - 'iso-ir-58' => 'GB2312', 212 - 'chinese' => 'GB2312', 213 - 'csiso58gb231280' => 'GB2312', 214 - 'csgb2312' => 'GB2312', 215 - 'zh_cn.euc' => 'GB2312', 216 - 'gb_2312' => 'GB2312', 103 + 'latin1' => 'iso-8859-1', 104 + 'iso_8859-1' => 'iso-8859-1', 105 + 'iso8859-1' => 'iso-8859-1', 106 + 'iso8859-2' => 'iso-8859-2', 107 + 'iso8859-3' => 'iso-8859-3', 108 + 'iso8859-4' => 'iso-8859-4', 109 + 'iso8859-5' => 'iso-8859-5', 110 + 'iso8859-6' => 'iso-8859-6', 111 + 'iso8859-7' => 'iso-8859-7', 112 + 'iso8859-8' => 'iso-8859-8', 113 + 'iso8859-9' => 'iso-8859-9', 114 + 'iso8859-10' => 'iso-8859-10', 115 + 'iso8859-11' => 'iso-8859-11', 116 + 'iso8859-13' => 'iso-8859-13', 117 + 'iso8859-14' => 'iso-8859-14', 118 + 'iso8859-15' => 'iso-8859-15', 119 + 'iso_8859-1:1987' => 'iso-8859-1', 120 + 'iso-ir-100' => 'iso-8859-1', 121 + 'l1' => 'iso-8859-1', 122 + 'ibm819' => 'iso-8859-1', 123 + 'cp819' => 'iso-8859-1', 124 + 'csisolatin1' => 'iso-8859-1', 125 + 'latin2' => 'iso-8859-2', 126 + 'iso_8859-2' => 'iso-8859-2', 127 + 'iso_8859-2:1987' => 'iso-8859-2', 128 + 'iso-ir-101' => 'iso-8859-2', 129 + 'l2' => 'iso-8859-2', 130 + 'csisolatin2' => 'iso-8859-2', 131 + 'latin3' => 'iso-8859-3', 132 + 'iso_8859-3' => 'iso-8859-3', 133 + 'iso_8859-3:1988' => 'iso-8859-3', 134 + 'iso-ir-109' => 'iso-8859-3', 135 + 'l3' => 'iso-8859-3', 136 + 'csisolatin3' => 'iso-8859-3', 137 + 'latin4' => 'iso-8859-4', 138 + 'iso_8859-4' => 'iso-8859-4', 139 + 'iso_8859-4:1988' => 'iso-8859-4', 140 + 'iso-ir-110' => 'iso-8859-4', 141 + 'l4' => 'iso-8859-4', 142 + 'csisolatin4' => 'iso-8859-4', 143 + 'cyrillic' => 'iso-8859-5', 144 + 'iso_8859-5' => 'iso-8859-5', 145 + 'iso_8859-5:1988' => 'iso-8859-5', 146 + 'iso-ir-144' => 'iso-8859-5', 147 + 'csisolatincyrillic' => 'iso-8859-5', 148 + 'arabic' => 'iso-8859-6', 149 + 'iso_8859-6' => 'iso-8859-6', 150 + 'iso_8859-6:1987' => 'iso-8859-6', 151 + 'iso-ir-127' => 'iso-8859-6', 152 + 'ecma-114' => 'iso-8859-6', 153 + 'asmo-708' => 'iso-8859-6', 154 + 'csisolatinarabic' => 'iso-8859-6', 155 + 'csiso88596i' => 'iso-8859-6-i', 156 + 'csiso88596e' => 'iso-8859-6-e', 157 + 'greek' => 'iso-8859-7', 158 + 'greek8' => 'iso-8859-7', 159 + 'sun_eu_greek' => 'iso-8859-7', 160 + 'iso_8859-7' => 'iso-8859-7', 161 + 'iso_8859-7:1987' => 'iso-8859-7', 162 + 'iso-ir-126' => 'iso-8859-7', 163 + 'elot_928' => 'iso-8859-7', 164 + 'ecma-118' => 'iso-8859-7', 165 + 'csisolatingreek' => 'iso-8859-7', 166 + 'hebrew' => 'iso-8859-8', 167 + 'iso_8859-8' => 'iso-8859-8', 168 + 'visual' => 'iso-8859-8', 169 + 'iso_8859-8:1988' => 'iso-8859-8', 170 + 'iso-ir-138' => 'iso-8859-8', 171 + 'csisolatinhebrew' => 'iso-8859-8', 172 + 'csiso88598i' => 'iso-8859-8', 173 + 'iso-8859-8i' => 'iso-8859-8', 174 + 'logical' => 'iso-8859-8', 175 + 'csiso88598e' => 'iso-8859-8-e', 176 + 'latin5' => 'iso-8859-9', 177 + 'iso_8859-9' => 'iso-8859-9', 178 + 'iso_8859-9:1989' => 'iso-8859-9', 179 + 'iso-ir-148' => 'iso-8859-9', 180 + 'l5' => 'iso-8859-9', 181 + 'csisolatin5' => 'iso-8859-9', 182 + 'unicode-1-1-utf-8' => 'utf-8', 183 + 'utf8' => 'utf-8', 184 + 'x-sjis' => 'shift_jis', 185 + 'shift-jis' => 'shift_jis', 186 + 'ms_kanji' => 'shift_jis', 187 + 'csshiftjis' => 'shift_jis', 188 + 'windows-31j' => 'shift_jis', 189 + 'cp932' => 'shift_jis', 190 + 'sjis' => 'shift_jis', 191 + 'cseucpkdfmtjapanese' => 'euc-jp', 192 + 'x-euc-jp' => 'euc-jp', 193 + 'csiso2022jp' => 'iso-2022-jp', 194 + 'iso-2022-jp-2' => 'iso-2022-jp', 195 + 'csiso2022jp2' => 'iso-2022-jp', 196 + 'csbig5' => 'big5', 197 + 'cn-big5' => 'big5', 198 + 'x-x-big5' => 'big5', 199 + 'zh_tw-big5' => 'big5', 200 + 'cseuckr' => 'euc-kr', 201 + 'ks_c_5601-1987' => 'euc-kr', 202 + 'iso-ir-149' => 'euc-kr', 203 + 'ks_c_5601-1989' => 'euc-kr', 204 + 'ksc_5601' => 'euc-kr', 205 + 'ksc5601' => 'euc-kr', 206 + 'korean' => 'euc-kr', 207 + 'csksc56011987' => 'euc-kr', 208 + '5601' => 'euc-kr', 209 + 'windows-949' => 'euc-kr', 210 + 'gb_2312-80' => 'gb2312', 211 + 'iso-ir-58' => 'gb2312', 212 + 'chinese' => 'gb2312', 213 + 'csiso58gb231280' => 'gb2312', 214 + 'csgb2312' => 'gb2312', 215 + 'zh_cn.euc' => 'gb2312', 216 + 'gb_2312' => 'gb2312', 217 217 'x-cp1250' => 'windows-1250', 218 218 'x-cp1251' => 'windows-1251', 219 219 'x-cp1252' => 'windows-1252', ··· 230 230 'x-mac-roman' => 'macintosh', 231 231 'mac' => 'macintosh', 232 232 'csmacintosh' => 'macintosh', 233 - 'cp866' => 'IBM866', 234 - 'cp-866' => 'IBM866', 235 - '866' => 'IBM866', 236 - 'csibm866' => 'IBM866', 237 - 'cp850' => 'IBM850', 238 - '850' => 'IBM850', 239 - 'csibm850' => 'IBM850', 240 - 'cp852' => 'IBM852', 241 - '852' => 'IBM852', 242 - 'csibm852' => 'IBM852', 243 - 'cp855' => 'IBM855', 244 - '855' => 'IBM855', 245 - 'csibm855' => 'IBM855', 246 - 'cp857' => 'IBM857', 247 - '857' => 'IBM857', 248 - 'csibm857' => 'IBM857', 249 - 'cp862' => 'IBM862', 250 - '862' => 'IBM862', 251 - 'csibm862' => 'IBM862', 252 - 'cp864' => 'IBM864', 253 - '864' => 'IBM864', 254 - 'csibm864' => 'IBM864', 255 - 'ibm-864' => 'IBM864', 256 - 't.61' => 'T.61-8bit', 257 - 'iso-ir-103' => 'T.61-8bit', 258 - 'csiso103t618bit' => 'T.61-8bit', 259 - 'x-unicode-2-0-utf-7' => 'UTF-7', 260 - 'unicode-2-0-utf-7' => 'UTF-7', 261 - 'unicode-1-1-utf-7' => 'UTF-7', 262 - 'csunicode11utf7' => 'UTF-7', 263 - 'csunicode' => 'UTF-16BE', 264 - 'csunicode11' => 'UTF-16BE', 265 - 'iso-10646-ucs-basic' => 'UTF-16BE', 266 - 'csunicodeascii' => 'UTF-16BE', 267 - 'iso-10646-unicode-latin1' => 'UTF-16BE', 268 - 'csunicodelatin1' => 'UTF-16BE', 269 - 'iso-10646' => 'UTF-16BE', 270 - 'iso-10646-j-1' => 'UTF-16BE', 271 - 'latin6' => 'ISO-8859-10', 272 - 'iso-ir-157' => 'ISO-8859-10', 273 - 'l6' => 'ISO-8859-10', 274 - 'csisolatin6' => 'ISO-8859-10', 275 - 'iso_8859-15' => 'ISO-8859-15', 276 - 'csisolatin9' => 'ISO-8859-15', 277 - 'l9' => 'ISO-8859-15', 278 - 'ecma-cyrillic' => 'ISO-IR-111', 279 - 'csiso111ecmacyrillic' => 'ISO-IR-111', 280 - 'csiso2022kr' => 'ISO-2022-KR', 281 - 'csviscii' => 'VISCII', 233 + 'cp866' => 'ibm866', 234 + 'cp-866' => 'ibm866', 235 + '866' => 'ibm866', 236 + 'csibm866' => 'ibm866', 237 + 'cp850' => 'ibm850', 238 + '850' => 'ibm850', 239 + 'csibm850' => 'ibm850', 240 + 'cp852' => 'ibm852', 241 + '852' => 'ibm852', 242 + 'csibm852' => 'ibm852', 243 + 'cp855' => 'ibm855', 244 + '855' => 'ibm855', 245 + 'csibm855' => 'ibm855', 246 + 'cp857' => 'ibm857', 247 + '857' => 'ibm857', 248 + 'csibm857' => 'ibm857', 249 + 'cp862' => 'ibm862', 250 + '862' => 'ibm862', 251 + 'csibm862' => 'ibm862', 252 + 'cp864' => 'ibm864', 253 + '864' => 'ibm864', 254 + 'csibm864' => 'ibm864', 255 + 'ibm-864' => 'ibm864', 256 + 't.61' => 't.61-8bit', 257 + 'iso-ir-103' => 't.61-8bit', 258 + 'csiso103t618bit' => 't.61-8bit', 259 + 'x-unicode-2-0-utf-7' => 'utf-7', 260 + 'unicode-2-0-utf-7' => 'utf-7', 261 + 'unicode-1-1-utf-7' => 'utf-7', 262 + 'csunicode11utf7' => 'utf-7', 263 + 'csunicode' => 'utf-16be', 264 + 'csunicode11' => 'utf-16be', 265 + 'iso-10646-ucs-basic' => 'utf-16be', 266 + 'csunicodeascii' => 'utf-16be', 267 + 'iso-10646-unicode-latin1' => 'utf-16be', 268 + 'csunicodelatin1' => 'utf-16be', 269 + 'iso-10646' => 'utf-16be', 270 + 'iso-10646-j-1' => 'utf-16be', 271 + 'latin6' => 'iso-8859-10', 272 + 'iso-ir-157' => 'iso-8859-10', 273 + 'l6' => 'iso-8859-10', 274 + 'csisolatin6' => 'iso-8859-10', 275 + 'iso_8859-15' => 'iso-8859-15', 276 + 'csisolatin9' => 'iso-8859-15', 277 + 'l9' => 'iso-8859-15', 278 + 'ecma-cyrillic' => 'iso-ir-111', 279 + 'csiso111ecmacyrillic' => 'iso-ir-111', 280 + 'csiso2022kr' => 'iso-2022-kr', 281 + 'csviscii' => 'viscii', 282 282 'zh_tw-euc' => 'x-euc-tw', 283 - 'iso88591' => 'ISO-8859-1', 284 - 'iso88592' => 'ISO-8859-2', 285 - 'iso88593' => 'ISO-8859-3', 286 - 'iso88594' => 'ISO-8859-4', 287 - 'iso88595' => 'ISO-8859-5', 288 - 'iso88596' => 'ISO-8859-6', 289 - 'iso88597' => 'ISO-8859-7', 290 - 'iso88598' => 'ISO-8859-8', 291 - 'iso88599' => 'ISO-8859-9', 292 - 'iso885910' => 'ISO-8859-10', 293 - 'iso885911' => 'ISO-8859-11', 294 - 'iso885912' => 'ISO-8859-12', 295 - 'iso885913' => 'ISO-8859-13', 296 - 'iso885914' => 'ISO-8859-14', 297 - 'iso885915' => 'ISO-8859-15', 298 - 'tis620' => 'TIS-620', 283 + 'iso88591' => 'iso-8859-1', 284 + 'iso88592' => 'iso-8859-2', 285 + 'iso88593' => 'iso-8859-3', 286 + 'iso88594' => 'iso-8859-4', 287 + 'iso88595' => 'iso-8859-5', 288 + 'iso88596' => 'iso-8859-6', 289 + 'iso88597' => 'iso-8859-7', 290 + 'iso88598' => 'iso-8859-8', 291 + 'iso88599' => 'iso-8859-9', 292 + 'iso885910' => 'iso-8859-10', 293 + 'iso885911' => 'iso-8859-11', 294 + 'iso885912' => 'iso-8859-12', 295 + 'iso885913' => 'iso-8859-13', 296 + 'iso885914' => 'iso-8859-14', 297 + 'iso885915' => 'iso-8859-15', 298 + 'tis620' => 'tis-620', 299 299 'cp1250' => 'windows-1250', 300 300 'cp1251' => 'windows-1251', 301 301 'cp1252' => 'windows-1252', ··· 315 315 */ 316 316 public function decodeCharset($encodedString, $charset) 317 317 { 318 - if (strtolower($charset) == 'utf-8' || strtolower($charset) == 'us-ascii') { 318 + $charset = $this->getCharsetAlias($charset); 319 + 320 + if ($charset == 'utf-8' || $charset == 'us-ascii') { 319 321 return $encodedString; 320 - } else { 321 - return iconv($this->getCharsetAlias($charset), 'UTF-8//TRANSLIT//IGNORE', $encodedString); 322 + } 323 + 324 + if (function_exists('mb_convert_encoding')) { 325 + if ($charset == 'iso-2022-jp') { 326 + return mb_convert_encoding($encodedString, 'utf-8', 'iso-2022-jp-ms'); 327 + } 328 + 329 + if (array_search($charset, $this->getSupportedEncodings())) { 330 + return mb_convert_encoding($encodedString, 'utf-8', $charset); 331 + } 322 332 } 333 + 334 + return iconv($charset, 'utf-8//translit//ignore', $encodedString); 323 335 } 324 336 325 337 /** ··· 331 343 332 344 if (array_key_exists($charset, $this->charsetAlias)) { 333 345 return $this->charsetAlias[$charset]; 334 - } else { 335 - return null; 336 346 } 347 + 348 + return 'us-ascii'; 349 + } 350 + 351 + private function getSupportedEncodings() 352 + { 353 + return 354 + array_map( 355 + 'strtolower', 356 + array_unique( 357 + array_merge( 358 + $enc = array_diff(mb_list_encodings(), ['BASE64', 'UUENCODE', 'HTML-ENTITIES', 'Quoted-Printable']), 359 + call_user_func_array( 360 + 'array_merge', 361 + array_map( 362 + "mb_encoding_aliases", 363 + $enc 364 + ) 365 + ) 366 + ) 367 + ) 368 + ); 337 369 } 338 370 }
+9 -4
externals/mimemailparser/Parser.php
··· 208 208 */ 209 209 protected function parse() 210 210 { 211 + if (!$this->resource) { 212 + throw new Exception( 213 + 'MIME message cannot be parsed' 214 + ); 215 + } 211 216 $structure = mailparse_msg_get_structure($this->resource); 212 217 $this->parts = []; 213 218 foreach ($structure as $part_id) { ··· 404 409 $body = empty($inline_parts) ? '' : $inline_parts[0]; 405 410 } else { 406 411 throw new Exception( 407 - 'Invalid type specified for getMessageBody(). Expected: text, html or htmlEmbeded.' 412 + 'Invalid type specified for getMessageBody(). Expected: text, html or htmlEmbedded.' 408 413 ); 409 414 } 410 415 ··· 450 455 * 451 456 * @param string $name Header name (case-insensitive) 452 457 * 453 - * @return array 458 + * @return array<int, array{'display': string, 'address': string, 'is_group': bool}> 454 459 */ 455 460 public function getAddresses($name) 456 461 { ··· 464 469 } 465 470 466 471 /** 467 - * Returns the attachments contents in order of appearance 472 + * Returns the inline parts contents (text or HTML) 468 473 * 469 - * @return Attachment[] 474 + * @return string[] The decoded inline parts. 470 475 */ 471 476 public function getInlineParts($type = 'text') 472 477 {
+2 -1
externals/mimemailparser/README.md
··· 43 43 * PHP 8.1 44 44 * PHP 8.2 45 45 * PHP 8.3 46 + * PHP 8.4 46 47 47 48 Previous Versions: 48 49 ··· 91 92 sed -i 's/#if\s!HAVE_MBSTRING/#ifndef MBFL_MBFILTER_H/' ./mailparse.c 92 93 make 93 94 sudo mv modules/mailparse.so /usr/lib/php/AAAAMMDD/ 94 - echo "extension=mailparse.so" | sudo tee /etc/php/7.1/mods-available/mailparse.ini 95 + echo "extension=mailparse.so" | sudo tee /etc/php/8.4/mods-available/mailparse.ini 95 96 sudo phpenmod mailparse 96 97 ``` 97 98