2015-10-17 2 views
0

Это проблема, с которой я боролся долгое время. Я действительно надеюсь, что кто-то может мне помочь.PHP-адрес электронной почты IMAP и кодировка MySQL

У меня есть программа PHP, читающая электронные письма из почтового ящика IMAP. После некоторого фиджинга с функциями PHP IMAP мне удалось получить текстовое содержимое электронной почты внутри переменной.

Когда я делаю var_dump этой переменной в файле журнала, я получаю что-то хорошее и читаемое.

Однако, когда я пытаюсь сохранить значение этой переменной в моей базе данных MySQL, она иногда не работает в зависимости от кодировки исходного письма.

Я говорю, что это связано с кодированием только потому, что он часто терпит неудачу при первом «специальном характере». Следовательно, отображается только часть сообщения.

Можно ли каким-либо образом «дезинфицировать» значение этой переменной, которое будет использоваться в моей базе данных MySQL? Сопоставление моей базы данных MySQL в настоящее время установлено на utf8_unicode_ci.

Это функция декодирования я уже использовали до сих пор:

static function decode_text($text, $encoding) 
{ 
    //return quoted_printable_decode($text); 
    switch ($encoding) { 
     # 7BIT 
     case 0: 
      return imap_utf7_decode($text); 
     # 8BIT 
     case 1: 
      return imap_utf8($text); 
     # BINARY 
     case 2: 
      return imap_binary($text); 
     # BASE64 
     case 3: 
      return imap_base64($text); 
     # QUOTED-PRINTABLE 
     case 4: 
      return imap_qprint($text); 
     # OTHER 
     case 5: 
      return $text; 
     # UNKNOWN 
     default: 
      return $text; 
    } 
} 

Спасибо за вашу помощь!

+0

Если вы сохраняете электронные письма imap в базе данных mysql, вам не нужно. – e4c5

+0

Правильно сделано, PHP + MySQL никогда не нуждается в декодировании, как в вашей функции. Поэтому я предполагаю, что проблема Imap. Укажите кодировку и требуемое декодирование - как в шестнадцатеричном виде, так и в образце. –

ответ

-1

Я написал этот github repository для решения этой проблемы.

чтение электронных писем из почтового ящика с использованием IMAP, а затем анализ возвращаемых писем в объект, дружественный к dev.