WRInaute discret
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