imap בphp

מצאתי באינטרנט איך להטמיע בphp שליפת דואר נכנס מהאימייל באמצעות imap
אך יש בעייה שכל פעם שהדף מקבל טקסטים בעברית הוא מראה כל מיני אותיות ומספרים שונים ומשונים וכמדומני היה בהתחלה הוספה של utf8.
אבל באנגלית הוא מדפיס את האנגלית רגיל.
אשמח לעזרה.

נ.ב.
אני משתמש בשליפה מהgmail שלי.

תודה
 
זה מה שעשיתי.
<?php
$mbox = imap_open("{imap.gmail.com:993/imap/ssl}inbox", "****", "****") or die("can't connect: " . imap_last_error());

$emails = imap_search($mbox,'ALL');
rsort($emails);

$headers = imap_headers($mbox);

$last = imap_num_msg($mbox);
$header = imap_header($mbox, $last);
$body = imap_body($mbox, $last);

echo $body;

imap_close($mbox);
?>
וזה מה שקיבלתי
כל מיני מספרים ואותיות ואז את זה Content-Type: text/plain; charset="UTF-8"
ושוב חוזר...


איפה אני אמור להגדיר את מה ששלחת?
 

moti_vb

משתמש רשום
תוסיף את הפונקצייה הזו:

PHP:
function convert_to_utf8($str = '') {
        if (mb_detect_encoding($str, 'UTF-8, ISO-8859-1, GBK') != 'UTF-8') {
            $str = utf8_encode($str);
        }
        $str = iconv('UTF-8', 'UTF-8//IGNORE', $str);

        return $str;
    }
ותמיר את הערכים שקיבלת עם הפונצקייה הזו זה אמור להציג לך עברית תקינה מג'מייל
 
ממש תודה אבל האם כאן אני מכניס את הערך ה $ או את התוצאות שהדף הביא לי???
כי אם זה יהיה רק את התוצאות בדפדפן זה לא יגמר אם אתה מבין למה אני מתכווין.
תודה
 

moti_vb

משתמש רשום
כך צריך להיראות הדף אחרי שהוספת את הפונקצייה, וזה אמור לעבוד.​

PHP:
<?php
function convert_to_utf8($str = "") {
        if (mb_detect_encoding($str, 'UTF-8, ISO-8859-1, GBK') != 'UTF-8') {
            $str = utf8_encode($str);
        }
        $str = iconv('UTF-8', 'UTF-8//IGNORE', $str);

        return $str;
    }

$mbox = imap_open("{imap.gmail.com:993/imap/ssl}inbox", "****", "****") or die("can't connect: " . imap_last_error());

$emails = imap_search($mbox,'ALL');
rsort($emails);

$headers = imap_headers($mbox);

$last = imap_num_msg($mbox);
$header = imap_header($mbox, $last);
$body = imap_body($mbox, $last);

echo convert_to_utf8($body);

imap_close($mbox);
?>
 
נערך לאחרונה ב:
בשורה הזאת
function convert_to_utf8($str = '') {

הוא נותן
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING /gmail.php on line 3
 
עדיין זה מה שמציג לי על
function convert_to_utf8($str = "") {


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /0.php on line 2

אולי תנסה לצרף את זה בתור קובץ מצורף כי הרבה קורה שאני מעתיק קוד אז זה לא עובד. תצרף בבקשה את קובץ הphp.
תודה
 
עכשיו הוא מראה לי על השורה שצרפת


Parse error: syntax error, unexpected T_STRING in /0.php on line 2

אולי תצרף לי כקובץ מצורף?????
 

moti_vb

משתמש רשום
אין לי קובץ מצורף העתקתי ממך את מה שאתה כתבת...
תצרף אתה את כל הקובץ שלך ונראה מה הבעייה.
 
לאאא. אצלי הבעייה בכמה אתרים בשיטת העתקבק שלי. פשוט תצרף כקובץ רגיל וככה אני יוריד אותו.
בכל אופן זה הקוד:


<?php
function convert_to_utf8($str) {
if (mb_detect_encoding($str, 'UTF-8, ISO-8859-1, GBK') != 'UTF-8') {
$str = utf8_encode($str);
}
$str = iconv('UTF-8', 'UTF-8//IGNORE', $str);

return $str;
}

$mbox = imap_open("{imap.gmail.com:993/imap/ssl}inbox", "***", "***") or die("can't connect: " . imap_last_error());

$emails = imap_search($mbox,'ALL');
rsort($emails);

$headers = imap_headers($mbox);

$last = imap_num_msg($mbox);
$header = imap_header($mbox, $last);
$body = imap_body($mbox, $last);

echo convert_to_utf8($body);

imap_close($mbox);
 

moti_vb

משתמש רשום
אצלי הקוד שלך עובד מצויין,
תצרף את הקובץ המלא שלך כקובץ, וננסה לעזור לך,
אין לי מה לשלוח לך אתה יכול לבד להעתיק את מה שכתבתי וליצור מזה קובץ.
 

moti_vb

משתמש רשום
כל הרווחים בקוד ששלחת הם תו לא מזוהה,
פשוט תבחר את התו שמשמש כרווח עכשיו בקוד שלך ותחליף אותו לרווח אמיתי והקוד יעבוד לך.
כנראה שהקידוד של הדף שלך לא נכון.
 
עכשיו הוא לא עשה בעיות אך הוא עדיין מראה את הכל לא בעברית.
מצרף לכאן את הקוד וגם את הקובץ.

<?php
function convert_to_utf8($str) {
if (mb_detect_encoding($str, 'UTF-8, ISO-8859-1, GBK') != 'UTF-8') {
$str = utf8_encode($str);
}
$str = iconv('UTF-8', 'UTF-8//IGNORE', $str);
return $str;
}
$mbox = imap_open("{imap.gmail.com:993/imap/ssl}inbox", "***אסור לפרסם מייל", "***") or die("can't connect: " . imap_last_error());
$emails = imap_search($mbox,'ALL');
rsort($emails);
$headers = imap_headers($mbox);
$last = imap_num_msg($mbox);
$header = imap_header($mbox, $last);
$body = imap_body($mbox, $last);
echo convert_to_utf8($body);
imap_close($mbox);
?>
 

קבצים מצורפים

  • 0.zip
    438 ביטים · צפיות: 13

moti_vb

משתמש רשום
אני מבין שחסר פה קצת ידע בסיסי ב-PHP
אני קצת אפרט לך,
קודם כל חייבים להגדיר את הקידוד של הדף כדי שיציג לך נכון,
דבר שני זה לא כ"כ פשוט לפענח דוא"ל, כי זה תלוי בקידוד שהדואר נשלח,
בשביל זה משתמשים בספריות מוכנות שכבר עשו את העבודה.

צירפתי לך דוגמא מושקעת,
תהנה, בהצלחה.
 

קבצים מצורפים

  • tes.rar
    KB 6.3 · צפיות: 29
משום מה הוא עושה לי בעיות עם השורה הזאת ולפעמים בהרבה קבצים שלי והבעיה היא ה].
Parse error: syntax error, unexpected '[' in /1.php on line 98

public function imap_connect($config = [])
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קכח

א שִׁיר הַמַּעֲלוֹת אַשְׁרֵי כָּל יְרֵא יְהוָה הַהֹלֵךְ בִּדְרָכָיו:ב יְגִיעַ כַּפֶּיךָ כִּי תֹאכֵל אַשְׁרֶיךָ וְטוֹב לָךְ:ג אֶשְׁתְּךָ כְּגֶפֶן פֹּרִיָּה בְּיַרְכְּתֵי בֵיתֶךָ בָּנֶיךָ כִּשְׁתִלֵי זֵיתִים סָבִיב לְשֻׁלְחָנֶךָ:ד הִנֵּה כִי כֵן יְבֹרַךְ גָּבֶר יְרֵא יְהוָה:ה יְבָרֶכְךָ יְהוָה מִצִּיּוֹן וּרְאֵה בְּטוּב יְרוּשָׁלִָם כֹּל יְמֵי חַיֶּיךָ:ו וּרְאֵה בָנִים לְבָנֶיךָ שָׁלוֹם עַל יִשְׂרָאֵל:
נקרא  20  פעמים

לוח מודעות

למעלה