Problème avec PHP: envoyer email avec pièce jointe PDF
5 messages
• Page 1 sur 1
- arnoweb
- WRInaute discret

- Messages: 87
- Inscription: 24 Juil 2004
Problème avec PHP: envoyer email avec pièce jointe PDF
Bonjour,
J'ai mis en place un script PHP me permettant d'envoyer automatiquement les emails stockés dans ma base de données.
Tout marche bien au niveau du script sauf un petit problème d'affichage des entête de l'email.
- Avec les messageries Yahoo, Gmail et Msn, l'email est bien présenté sauf l'instruction "Content-Transfer-Encoding:8bit" qui s'affiche au dessus du texte de l'email
- Avec Mozilla Thunderbird, j'ai cela qui s'affiche "Content-Type: text/plain;charset=ISO-8859-1 Content-Transfer-Encoding:8bit"
et la pièce jointe est corrompu et affiche un grand nombre de lignes du type "JVBERi0xLjQKJcfsj6IKNSAwIG9i"
Pour que cela soit plus concret, voici mon code ci-dessous.
Manque t-il des instructions ? y a t-il une erreur ? Problème d'encodage ?
----------------------------------------------------------------------------------------------------------
// Indiquer ici le fichier contenant les accès à la base de données
include("mainfile.php");
// Indiquer ici les informations du candidat (nom, email, ville, ...)
define('_NOM_COMPLET','XXXXXXXX');
define('_EMAIL','XXXXXXXX');
define('_PORTABLE','XXXXXXXXXXX');
define('_FIXE','XXXXXXXXXXX');
define('_ADRESSE','XXXXXXXXXXX');
// Requête SQL permettant d'accéder à tous les emails avec leurs correspondances
$sql = "SELECT * FROM samy_emailing";
$query = mysql_query($sql);
// On démarre la boucle, c'est à dire que le système va envoyer 1 par 1 les emails gràce à l'instruction WHILE
while($send = mysql_fetch_assoc($query)) {
// Initialisation des données pour l'email
$email = $send['email'];
$societe = $send['societe'];
$titre = $send['titre'];
$nom = $send['nom'];
$destinataire = $email;
$subject = 'XXXXXXXXXXX';
$headers = "";
$headers .= "From: "._EMAIL."\r\n";
$headers .= "Reply-To: "._EMAIL."\r\n";
$headers .= "Return-Path: "._EMAIL."\r\n";
$headers .= "Content-Type: multipart/mixed;";
$headers .= "boundary=\"aaaaaaaaaa\"\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$message = "";
$message .= "--aaaaaaaaaa\r\n";
$message .= "Content-Type: text/plain;";
$message .= "charset=ISO-8859-1\r\n\n";
$message .= "Content-Transfer-Encoding:8bit\r\n";
$message .= "\r\n";
$message .= $titre." ".$nom.", \r\n\nJe me rapproche de vous pour vous témoigner mon désir de rejoindre ".$societe.". En effet, fort d’une mission réussie en agence de conseil en communication ..........\n\n\n";
$message .= "Je vous invite ..... ".$societe.".\n\n\n";
$message .= ".....texte.\n\n\n";
$message .= "Par ailleurs, j'ai effectué dans le cadre de .......\n\n\n";
$message .= ".....texte.\n\n\n";
$message .= "......texte.\n\n\n";
$message .= "Je reste à votre disposition dans cette perspective ou pour tout complément d'information et vous prie de croire, Madame ou Monsieur, en l'assurance de mes plus sincères salutations.\n\n\n";
$message .= _NOM_COMPLET."\n"._PORTABLE."\n"._FIXE."\n"._ADRESSE."\n"._EMAIL."\r\n";
$message .= "\r\n";
$message .= "--aaaaaaaaaa\r\n";
$message .= "Content-Type: application/octet-stream;";
$message .= "name=\"2009_CV_S.pdf\"\r\n";
$message .= "Content-Transfer-Encoding:base64\r\n";
$message .= "Content-Disposition:attachment;";
$message .= "filename=\"2009_CV_S.pdf\"\r\n";
$message .= "\r\n";
$fichier = fopen("2009_CV_S.pdf","rb");
$donnees = fread($fichier,filesize("2009_CV_S.pdf"));
fclose($fichier);
$donnees = chunk_split(base64_encode($donnees));
$message .= "$donnees\r\n";
$message .= "\r\n";
$message .= "--aaaaaaaaaa--\r\n";
$email = mail($destinataire,$subject,$message,$headers);
echo 'Envoyé OK pour '.$destinataire.'<br>';
}
---------------------------------------------------------------------------------------------
Merci pour votre aide
J'ai mis en place un script PHP me permettant d'envoyer automatiquement les emails stockés dans ma base de données.
Tout marche bien au niveau du script sauf un petit problème d'affichage des entête de l'email.
- Avec les messageries Yahoo, Gmail et Msn, l'email est bien présenté sauf l'instruction "Content-Transfer-Encoding:8bit" qui s'affiche au dessus du texte de l'email
- Avec Mozilla Thunderbird, j'ai cela qui s'affiche "Content-Type: text/plain;charset=ISO-8859-1 Content-Transfer-Encoding:8bit"
et la pièce jointe est corrompu et affiche un grand nombre de lignes du type "JVBERi0xLjQKJcfsj6IKNSAwIG9i"
Pour que cela soit plus concret, voici mon code ci-dessous.
Manque t-il des instructions ? y a t-il une erreur ? Problème d'encodage ?
----------------------------------------------------------------------------------------------------------
// Indiquer ici le fichier contenant les accès à la base de données
include("mainfile.php");
// Indiquer ici les informations du candidat (nom, email, ville, ...)
define('_NOM_COMPLET','XXXXXXXX');
define('_EMAIL','XXXXXXXX');
define('_PORTABLE','XXXXXXXXXXX');
define('_FIXE','XXXXXXXXXXX');
define('_ADRESSE','XXXXXXXXXXX');
// Requête SQL permettant d'accéder à tous les emails avec leurs correspondances
$sql = "SELECT * FROM samy_emailing";
$query = mysql_query($sql);
// On démarre la boucle, c'est à dire que le système va envoyer 1 par 1 les emails gràce à l'instruction WHILE
while($send = mysql_fetch_assoc($query)) {
// Initialisation des données pour l'email
$email = $send['email'];
$societe = $send['societe'];
$titre = $send['titre'];
$nom = $send['nom'];
$destinataire = $email;
$subject = 'XXXXXXXXXXX';
$headers = "";
$headers .= "From: "._EMAIL."\r\n";
$headers .= "Reply-To: "._EMAIL."\r\n";
$headers .= "Return-Path: "._EMAIL."\r\n";
$headers .= "Content-Type: multipart/mixed;";
$headers .= "boundary=\"aaaaaaaaaa\"\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$message = "";
$message .= "--aaaaaaaaaa\r\n";
$message .= "Content-Type: text/plain;";
$message .= "charset=ISO-8859-1\r\n\n";
$message .= "Content-Transfer-Encoding:8bit\r\n";
$message .= "\r\n";
$message .= $titre." ".$nom.", \r\n\nJe me rapproche de vous pour vous témoigner mon désir de rejoindre ".$societe.". En effet, fort d’une mission réussie en agence de conseil en communication ..........\n\n\n";
$message .= "Je vous invite ..... ".$societe.".\n\n\n";
$message .= ".....texte.\n\n\n";
$message .= "Par ailleurs, j'ai effectué dans le cadre de .......\n\n\n";
$message .= ".....texte.\n\n\n";
$message .= "......texte.\n\n\n";
$message .= "Je reste à votre disposition dans cette perspective ou pour tout complément d'information et vous prie de croire, Madame ou Monsieur, en l'assurance de mes plus sincères salutations.\n\n\n";
$message .= _NOM_COMPLET."\n"._PORTABLE."\n"._FIXE."\n"._ADRESSE."\n"._EMAIL."\r\n";
$message .= "\r\n";
$message .= "--aaaaaaaaaa\r\n";
$message .= "Content-Type: application/octet-stream;";
$message .= "name=\"2009_CV_S.pdf\"\r\n";
$message .= "Content-Transfer-Encoding:base64\r\n";
$message .= "Content-Disposition:attachment;";
$message .= "filename=\"2009_CV_S.pdf\"\r\n";
$message .= "\r\n";
$fichier = fopen("2009_CV_S.pdf","rb");
$donnees = fread($fichier,filesize("2009_CV_S.pdf"));
fclose($fichier);
$donnees = chunk_split(base64_encode($donnees));
$message .= "$donnees\r\n";
$message .= "\r\n";
$message .= "--aaaaaaaaaa--\r\n";
$email = mail($destinataire,$subject,$message,$headers);
echo 'Envoyé OK pour '.$destinataire.'<br>';
}
---------------------------------------------------------------------------------------------
Merci pour votre aide
Dernière édition par arnoweb le Mer Mar 04, 2009 16:31, édité 1 fois.
-

UsagiYojimbo - WRInaute accro

- Messages: 8578
- Inscription: 23 Nov 2005
Re: Problème avec PHP: envoyer email avec pièce jointe PDF
Et pourquoi ne pas utiliser une classe comme phpmailer, qui génère les entête et gère tout l'envoi ?
-

JanoLapin - WRInaute accro

- Messages: 4054
- Inscription: 21 Sep 2008
Re: Problème avec PHP: envoyer email avec pièce jointe PDF
on ne dit pas "mes habiletés" mais plutôt "mes compétences"...
par ailleurs, cela te regardes, mais faire un sript de CV automatisé pour expliquer que t'es une bête de comm', cela le fait moyen ahma. Je te donne ici mon avis en tant qu''employeur.
par ailleurs, cela te regardes, mais faire un sript de CV automatisé pour expliquer que t'es une bête de comm', cela le fait moyen ahma. Je te donne ici mon avis en tant qu''employeur.
- arnoweb
- WRInaute discret

- Messages: 87
- Inscription: 24 Juil 2004
Re: Problème avec PHP: envoyer email avec pièce jointe PDF
J'ai retiré le corps du message.
En fait cela est pour un ami, pas pour moi. (ne sachant pas faire des envois automatisé)
Je lui ferais part du côté vaniteux de son message
Sinon, avez-vous une idée d'où vient le problème ?
En fait cela est pour un ami, pas pour moi. (ne sachant pas faire des envois automatisé)
Je lui ferais part du côté vaniteux de son message
Sinon, avez-vous une idée d'où vient le problème ?
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [php] envoyer un mail avec une pièce jointe
- Mail + pièce jointe PDF généré en PHP
- script php qui permet d'envoie une pièce jointe vers email
- formulaire envoi de piece jointe php
- Un formulaire en PHP avec pièce jointe: sécurité!
- [resolu] envoie d'une piece jointe en php
- file_get_contents(), envoie mail() avec pièce jointe php
- formulaire avec piéce jointe
- Gmail : pièce jointe *.exe
- envoi mail avec pièce jointe impossible
Consultez la description détaillée des produits ou services de Google suivants : Google PDF Quick View
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
