[SOLUTION] Mail via fonction PHP mail()

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

alien7
Nouveau WRInaute
 
Messages: 17
Inscription: Jeu Oct 20, 2005 0:53

Message le Dim Oct 30, 2005 17:10

Je n'ai pas ce problème avec thunderbird, alors pourquoi outlook m'enleve les h du http ??

alien7
Nouveau WRInaute
 
Messages: 17
Inscription: Jeu Oct 20, 2005 0:53

Message le Sam Nov 05, 2005 17:25

UP je n'ai toujours pas trouver la cause a mon probleme.

Y'aurai t il d'autre option dans cette ligne ?
Code: Tout sélectionner
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";


Sinon pour un site pro il est preferable d'envoyer un mail en html ou texte ? par exemple une confirmation d'inscription ?

pierre_jean
WRInaute impliqué
WRInaute impliqué
 
Messages: 339
Inscription: Mer Avr 06, 2005 12:24

problème

Message le Mar Nov 08, 2005 13:17

Bonjour,

j'ai utilisé votre fonction mail() , car effectivement avant mes messages passs en spam. Le problème c'est que j'utilise votre astuce dans le cadre d'une recommandation de site, donc l'url de ce dernier apparait dans le corps du mail. Et systématiquement gmail catégorise les nouveaux mails comme spam ... parceque il y a une url à l'intérieur ?
sinon commetn faire?

voilà mon code type :
Code: Tout sélectionner
<?php
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"domaine.com\" <contact@domaine.com>\n";
$headers .= "From: \"domaine.com\"<contact@domaine.com>\n";
//NOTE: l'adresse email indiquée dans le header From doit etre l'adresse absolue du serveur qui envoie les messages, et peut etre differente de votre adresse de contact si vous etes par exemple sur un serveur dedié partagé. dans mon cas l'adresse specifiee ici est <webusers@mail.nomduserveur.com>
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "visiteur@domaine.com";

$subject = "Sujet de mail";

$message_txt  = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "regardes mon site";

$message_html  = "<html>\n";
$message_html .= "<body>\n";
$message_html .= "<b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<a href=\"http://www.google.fr\">regardes mon site</a>";
$message_html .= "</body>\n";
$message_html .= "</html>\n";

$message  = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($destinataire, $subject, $message, $headers);
?>


merci d'avance,

Cdlt,

P.J.


yannouk
WRInaute accro
WRInaute accro
 
Messages: 2138
Inscription: Sam Oct 11, 2003 12:35

Message le Lun Nov 14, 2005 14:20

pour ma part aucun probleme avec gmail, je place des liens vers mon site et les mails arrivent!

pour le probleme d'alien7, certaines lettres ou chiffres, nottament en utilisant les variables, se retrouvaient supprimées, a cause du type d'encodage utilisé.

J'ai solutionné en rajoutant ces lignes:

chercher
Code: Tout sélectionner
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";


ajouter
Code: Tout sélectionner
$message .= "Content-Transfer-Encoding: base64\r\n\r\n";
$message .= chunk_split(base64_encode($message_html));

attentio
WRInaute discret
WRInaute discret
 
Messages: 99
Inscription: Mar Mar 29, 2005 14:05

Message le Jeu Nov 17, 2005 11:16

bonjour,
je patauge ...je patauge :cry:
voila je voudrais envoyer mes mails uniquement au format html.

mais soucis, dès que je mets une image, mon mail est envoyé dans le courrier indesirable.
j'ai pourtant rajouté
"Content-Transfer-Encoding: 8bit\n\n";
comme le conseillait or-bleu
Code: Tout sélectionner
<?
$boundary = "-----=" . md5( uniqid ( rand() ) );
$entete = "Reply-to: \"mon_site.com\" <contact@mon_site.com>\n";
$entete .= "From: \"mon_site.com\"<contact@mon_site.com>\n";
$entete .= "MIME-Version: 1.0\n";
$entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "mail@hotmail.com";
$sujet = "Sujet de mail";
$message='<html><img src="http://www.mon_site.com/logo_petit.gif"><br><p>hello</p></html>';
 

$message_envoi  = "This is a multi-part message in MIME format.\n\n";
$message_envoi .= "--" . $boundary . "\n";
$message_envoi .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message_envoi .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message_envoi .= "\n\n";
$message_envoi .= "--" . $boundary . "\n";
$message_envoi .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message_envoi .= "Content-Transfer-Encoding: 8bit\n\n";
$message_envoi .= $message;
$message_envoi .= "\n\n";
$message_envoi .= "--" . $boundary . "--\n";

mail($destinataire, $sujet, $message_envoi, $entete);
?>
il ya surement des choses inutiles dans mon code ....

merci infiniment de votre aide

JayJayPackman
Nouveau WRInaute
 
Messages: 5
Inscription: Ven Mai 27, 2005 10:24

Message le Lun Déc 12, 2005 18:03

J'utilise cette fonction pour envoyer des mail j'ai un problème à la reception du mail.

Hotmail me propose de telecharger les deux partie du messages au lieu de me montrer le corps html.
Et dans mon client outlook j'obtiens la totalité du message.

voici le code utilisé :
Code: Tout sélectionner
$to = "moi@moi.com <moi@moi.com>";

//ident of the part of the message
$boundary = uniqid("Recommended");

//subject of the message
$subject = "Page Recommandé par Toto;


// common header of the plain and html version of the message
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"". $boundary . "\"\n\n";
//$headers .= "Content-Transfer-Encoding: \"7bit\"\n\n";

//begin of the message
$message = "This is a multipart message Text.\n\n";

// plain text version of the message
$message .= "--$boundary\n";
$message .= "Content-Type: \"text/plain\"; charset=\"iso-8859-1\"\n\n";
$body = "Test message \n\n";
$message .= $body;
$message .= "\n\n";

//html version of the message
$message .= "--$boundary\n";
$message .= "Content-Type: \"text/html\"; charset=\"iso-8859-1\"\n\n";
$body = "<html>\n";
$body .= "<head>\n";
$body .= "</head>\n";
$body .= "<body bgcolor='#CCCCCC'>\n";
$body .= "</body></html>\n";
$message .= $body;
$message .= "\n\n";
$message .= "--$boundary--\n";
$headers .= $message;



if (mail($to, $subject, '', $headers)) {
    echo "MAIL OK !";
} else {
    echo "mail failed ! ";
}


Et le resultat :
Image

Image

et le code de la page sous hotmail :
Code: Tout sélectionner
X-Message-Status: n:0
X-SID-PRA: www-data <www-data@arf>
X-SID-Result: TempError
X-Message-Info: 6sSXyD95QpWCIk0GgictX/+r8DfTFDC2mQyW+U8MC+s=
Received: from srv-dev-1-web-ft-1 ([195.167.197.96]) by bay0-mc7-f5.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.211);
    Mon, 12 Dec 2005 07:32:38 -0800
Received: from www-data by srv-dev-1-web-ft-1 with local (Exim 3.35 #1 (Debian))
   id 1ElpfG-0007ru-00
   for <moi@moi.com>; Mon, 12 Dec 2005 16:32:34 +0100
To: friend <moi@moi.com>
Subject: Page Recommandé par Jeremy
From:Jeremy <moi@moi.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="Recommended439d98122f874"
Message-Id: <E1ElpfG-0007ru-00@srv-dev-1-web-ft-1>
Sender: www-data <www-data@arf>
Date: Mon, 12 Dec 2005 16:32:34 +0100
Return-Path: www-data@arf
X-OriginalArrivalTime: 12 Dec 2005 15:32:39.0290 (UTC) FILETIME=[48FC45A0:01C5FF31]



This is a multipart message Text.

--Recommended439d98122f874
Content-Type: "text/plain"; charset="US-ASCII"

Test message 41

test message

link html :

Http://moi.moi.com

--Recommended439d98122f874
Content-Type: "text/html"; charset="US-ASCII"

<html>
<head>
</head>
<body bgcolor='#CCCCCC'>
Test message 41<br>
test message

link html :

Http://moi.moi.com
</body></html>

--Recommended439d98122f874--


Pourquoi il ne me propose pas de visualiser la partie html dans les deux cas ?

Objectif Lune
WRInaute discret
WRInaute discret
 
Messages: 86
Inscription: Lun Nov 25, 2002 12:06

Message le Mar Déc 20, 2005 11:10

Salut,

Je remonte un peu le sujet car j'ai une question relative à votre discussion : est-ce que ce n'est pas dangereux d'avoir "webusers@localhost by sdxxx.sivit.org" affiché dans le header même si ce n'est pas l'email directement affiché ? C'est juste parce que je m'apprête à envoyer une première newsletter et je ne souhaite avoir du spam ou pire en retour...

D'ailleurs, quelqu'un sait-il comment faire pour avoir un "noreply@mondomaine.com" par exemple :?: Est-ce que ça évite le spam ?

Merci de votre aide, il faudrait que la newsletter parte aujourd'hui car ça fait plusieurs jours que je suis sur le problème, sans solution :roll:
Dernière édition par Objectif Lune le Dim Mar 11, 2007 19:00, édité 1 fois.

lolo55
Nouveau WRInaute
 
Messages: 1
Inscription: Sam Mar 10, 2007 2:10

ne marche pas !

Message le Sam Mar 10, 2007 2:17

Bonjour,

je m'adresse a yannouk, voila j'ai moi aussi ce probleme d'envoi de mailing ou mes visiteurs lors de la newsletter recoivent en courier indesirable, la majorité en hotmail (hotmail.com,etc...)

J'ai tester ton astuce qui malheureusement ne marche pas car j'ai pu tester sur une de mes adresse hotmail.com, je sais vraiment plus comment faire, mais si tu ou bien quelqu'un d'autres a une astuce pour regler ce probleme qui me tiens bcp a coeur, ca serait sympa !

J'ai mis ce code la :

$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"monsite.com\" <contact@monsite.com>\n";
$headers .= "From: \"monsite.com\"<users@mail.nomduserveur.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "mon_adresse_de_test@hotmail.com";

$subject = "Sujet de mail";

$message_txt = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "toto";

$message_html = "<html>\n";
$message_html .= "<body>\n";
$message_html .= "<b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<u>toto</u>";
$message_html .= "</body>\n";
$message_html .= "</html>\n";

$message = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($destinataire, $subject, $message, $headers);


Naturellment j'ai modifier mon 'From' en mettant mon 'return path' !

Voila esperont que vous pourrez m'aider !

pstory
Nouveau WRInaute
 
Messages: 1
Inscription: Ven Jan 09, 2009 15:46

Message le Ven Jan 09, 2009 15:49

Bonjour à tous !

Très franchement j'ai de très bons résultats avec la class libmail : http://lwest.free.fr/doc/php/lib/index. ... il&lang=en

En plus très simple d'utilisation mais en html ou pour l'envoi de fichier.

bye


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Ven Jan 09, 2009 17:38

ouhhh ! vieux déterrage pour faire sa pub ? :D


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5225
Inscription: Mer Nov 23, 2005 10:38

Message le Ven Jan 09, 2009 18:12

Je n'ai pas testé sa classe, mais a priori aucune modif depuis 2001, ca fait un peu peur... Je trouve qu'actuellement on ne fait pas mieux que phpmailer.


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Ven Jan 09, 2009 20:47

SwiftMailer :P


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 870
Inscription: Mar Aoû 05, 2003 14:49

Message le Ven Jan 09, 2009 21:05

effectivement :-)
par contre depuis 2005 la problématique à évoluer s'agit pas uniquement de bien former son mail, mais aussi de montrer patte blanche au grand FAI qui ont vite fait de te passer en spam si t'es pas copain avec eux ...

[SOLUTION] Mail via fonction PHP mail()

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier, Google mail

  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités