Fichier attaché avec ONLINE email()

wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005 - 22 août 2005 à 23:21
wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005 - 23 août 2005 à 13:16
Bonjour

J'essaie d'envoyer un fichier attaché (pdf) via un script php qui ne peut utiliser la fonction mail car je suis hébergé chez ONLINE et sa fonction email().

Mon script envoie bien le mail mais pas le fichier attaché. Ce dernier ressort codé au bas du mail reçu par le destinataire

Je joins mon code et espère que vous pourrez me filer un coup de main car je galère sec


<?php include("online_connexion.php");

if(isset($_POST)) {

$id = $_POST['ID'];
// on récupère les données de la table qui correspond au login du visiteur
$sql = "SELECT * FROM inscrits WHERE ID='".$id."'";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$row = mysql_fetch_array($req);

// Format : bool online_sendemail(string To, string Sujet, string Message[, int IsTxt]);
// IsTxt : 0 pour du html, 1 pour du texte (defaut)

// Exemple d'utilisation de 'email()' pour envoyer des mails en .html (ou en texte)

// Remplacer cette ligne par le domaine concernée.
// Il sera utilisé pour renvoyer les erreurs au postmaster de ce domaine
$Domain = preg_replace("/^[^\.]+\./", "", $_SERVER["SERVER_NAME"]);

function online_sendemail($To, $Subject, $Content, $Txt=1)
{
global $Domain;
$From=$Replyto="webmaster";
$Errors="postmaster@$Domain";
$Headers = "Return-path: $Errors\n";

if ($Txt != 1)
{
$boundary = '-----=' . md5( uniqid ( rand() ) );

$path = 'inv/2005/9645.pdf';
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path));
fclose($fp);
$content_encode = chunk_split(base64_encode($content));

$Headers .= "Content-Type:text/html;charset=iso-8859-1\n";
$Headers .= "Content-Transfer-Encoding: 8bit\n";
$Headers .= "X-Priority: 1\n";

$Content .= "--" . $boundary . "\n";
$Content .= "Content-Type: file/pdf; name="9645.pdf"\n";
$Content .= "Content-Transfer-Encoding: base64\n";
$Content .= "Content-Disposition: attachment; filename="9645.pdf"\n\n";
$Content .= $content_encode . "\n";
$Content .= "\n\n";
$Content .= "--" . $boundary . "--\n";
}

return( email($From,$To,$Subject,$Content,$Replyto,$Headers));
}
}
$To = $row['EMAIL'];
$Subject = "blabla";
$Content = "<HTML>
<TITLE>blabla</TITLE>
blabla
</HTML>";

$Txt = 0;

if (! online_sendemail($To, $Subject, $Content, $Txt))
{
echo "Retour au formulaire

";
}
else
{
print ('<script language="javascript">alert(\Envoi OK.\');
window.location="../espace_admin.php"</script>');
}
mysql_close();
?>


Ci-dessous la restitution d'une partie du code de mon fichier PDF...

-------=0e85d70806ab81a27311facdbf29bb27 Content-Type: file/pdf; name="9645.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="9645.pdf" JVBERi0xLjIgDSXi48/TDQogDTEwIDAgb2JqDTw8DS9MZW5ndGggMTEgMCBSDS9GaWx0ZXIgL0Zs YXRlRGVjb2RlIA0+Pg1zdHJlYW0NCkiJvVddb+O2Ev0F/g98KW4WsLX8ptQ3b+IUAZLdvbH3FgX8 osjKrgpZSmU7F/ff3xlKpCVZst0CrYMksjgkDw9nzsz8QSaChoGWxIQ6MJywMApCSRgLFCdVSn6Q X0lBJp9WR7soYJyQ1d2EEvypvpPJx3tKGA1oCO9fJzN4ElrAc0JowJhk8PhfckPan9usSg55nMEe r2uh2HuVpRXhlCoyI8Waa1ibz6j6QFa/Txaryb/J5A8AGzLc3WgWGE2M/TuE1ZnJgOmLWLlxUKkM a6jzfBcnKXkqd2mep8MYhA5CElIk5QwEEQXn2YIHKmSNoN58NvLpwuCa4xJa6wBQM/iG/06BeLsw CMPzSBoaqDG6oWG5fFiu5p9X65vF+sOSPM1Xi+fPi8f1zSN+7wJiJgwEJ1paDELQITTeSATRRV5Y

Merci d'avance pour vos lumières

2 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
23 août 2005 à 00:02
Salut,



J'ai pas trop envie de lire ton code... Mais le coup du fichier attaché
coder "base64" en fin de mail, ça me l'a déjà fait. Et en utilisant la
fonction mail(), betement, tout ce qu'il y a de plus classique!!! Et ce
jour, j'ai du perdre quelques cheveux.



A mon avis, fouille encore sur internet et trouve le bon tutoriel mail
(j'le retrouve pas désolé). L'erreur ne doit pas venir de la fonction
email(). Mais d'un bismurke avec les balises du type MIME.



En jettant un bref coup d'oeil :

1. n'oublies-tu pas de déclarer un truc comme "MIME-Version 1.0" qui est assez capital!!!

2. Evite le "file/pdf". Opte pour un joyeux "application/stream" passe-partout

3. Voila!

bon courage
0
wynelle Messages postés 24 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 11 septembre 2005
23 août 2005 à 13:16
Je viens d'essayer suivant tes recommandations mais c'est toujours pareil

Quelqu'un pourrait-il jeter un oeil sur mon code et/ou me filer un code qui marche avec ONLINE et la fonction email().

D'avance un grand merci.
0
Rejoignez-nous