Πρόβλημα με τους χαρακτήρες σε e-mail

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πρόβλημα με τους χαρακτήρες σε e-mail

Δημοσίευση από Apostolis_38 » 03 Δεκ 2008 17:11

Την καλησπέρα μου σε όλους.

Το (καινούργιο :D ) πρόβλημά μου είναι το εξής:
έχω μία φόρμα όπου ο admin αφού ανεβάσει ένα αρχείο στέλνει ένα e-mail στίς διευθύνσεις που βρίσκονται στην βάση.

στο script (εκτός των άλλων) έχω τίς εξής ρυθμίσεις:
- To κείμενο που πληκτρολογείται απο τον admin π.χ. σάς στέλνω το ενημερωτικό e-mail κ.λπ. κ.λπ.

Κώδικας: Επιλογή όλων

$msg = stripslashes ($_POST['message']);
- το path και το αρχείο που γίνεται upload

Κώδικας: Επιλογή όλων

$attachment = $_POST['attachment'];
-το script διαβάζει τα περιεχόμενα του αρχείου

Κώδικας: Επιλογή όλων

$file = fopen($attachment,'r');
$data = file_get_contents($attachment);
fclose($file);
- headers για την αποστολή του e-mail

Κώδικας: Επιλογή όλων

$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: multipart/mixed; charset=utf-8' . 'Content-Transfer-Encoding: 7bit' . "\r\n";
$headers .= 'From: διεύθυνση αποστολέα ' . "\r\n".'Reply-To: διεύθυνση αποστολέα' . "\r\n";
- εδώ το κείμενο του αρχείου παίρνει τίς ρυθμίσεις των header

Κώδικας: Επιλογή όλων

$headers .= $data;
- και μετά το e-mail στέλνεται κανονικά

Κώδικας: Επιλογή όλων

$mail_sent = @mail($to, $subj, $msg, $headers);
    {
      echo $mail_sent?"Επιτυχής αποστολή newsletter."&#58;"Ανεπιτυχής αποστολή newsletter.<br>Δοκιμάστε πάλι σε λίγο";
    &#125;
Το πρόβλημα είναι στο κείμενο του αρχείου όταν διαβάζω το e-mail απο τον λογαριασμό που έχω στείλει το μήνυμα.
Αν το αρχείου είναι txt τότε πρέπει να επιλέξω να διαβάσω το αρχείο με iso-8859-7 αλλά τότε χαλάει το $msg (message).
Αν το αρχείο είναι word βγάζει πολλά "αλαμπουρνέζικα".
Ειδικά, αν βάλω και καμμιά φωτογραφία γίνεται της τρελλής :D

Δοκίμασα διάφορες γραμματοσειρές στο word αλλά είδα οτι δεν παίζουν κανένα ρόλο.
Δοκίμασα επίσης στο fopen να το διαβάσω σαν binary ('rb') πάλι τίποτα.
Ακόμα κι αν μετά κάνω την μετατροπή με base64_encode($data).

Πώς πρέπει να στέλνετε το κείμενο που υπάρχει μέσα στο uploaded αρχείο για να εμφανίζεται σωστά;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες