What email client is he using ? Is it the same as yours ?
This is something I wrote to send text, html or text and html email...
function htmlentities1($strTexte) {
return '>' . htmlentities($strTexte[1]) . '<';
}
function Courriel_Envoyer($strA, $strDe, $strSujet, $strMessage, $intType = 1) {
// Type = 1 : text/plain + text/html, $strMessage = text/html
// Type = 2 : text/plain, $strMessage = text/plain
// Type = 3 : text/html, $strMessage = text/html
$bolEnvoyer = true;
$arrCaptures = array();
if(!preg_match('#[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+#i', $strA)) {
// L'adresse n'est aucunement valide.
$bolEnvoyer = false;
} elseif(!preg_match('#^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$#i', $strA)) {
// L'adresse n'est pas isolée.
if(!preg_match('#^".*?"[\s]<[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+>$#i', $strA)) {
// L'adresse n'est pas du type "Nom" <adresse>
if(!preg_match('#^(.*?[\s]*?)<(([a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+)))+)>$#i', $strA, $arrCaptures)) {
// L'adresse n'est pas du type *<adresse>
if(!preg_match('#^<[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+>$#i', $strA)) {
// L'adresse n'est même pas du type <adresse>.
$bolEnvoyer = false;
}
} else {
// L'adresse est du type *<adresse>.
$strA = ((strlen(trim($arrCaptures[1])))? sprintf('"%s" <%s>', trim($arrCaptures[1]), $arrCaptures[2]) : sprintf('<%s>', $arrCaptures[2]));
}
}
}
$strFrontiere = '-----=' . md5(microtime()); //ee73c3999b98f9988841733db40e2dc7"; // . md5(uniqid(rand())); //'-----=' . md5(microtime()) . '=-----';
$strEntetes = sprintf(('Reply-to: %s' . "\r\n"), $strDe);
$strEntetes .= sprintf(('From: %s' . "\r\n"), $strDe);
$strEntetes .= 'MIME-Version: 1.0' . "\r\n";
$strMessage_Texte = '';
$strMessage_HTML = '';
$strMessage_Final = '';
switch($intType) {
case '1':
$strEntetes .= sprintf(('Content-Type: multipart/alternative; boundary="%s"'), $strFrontiere);
$strMessage_Texte = preg_replace('#<html>.*?<body>#s', '', $strMessage);
$strMessage_Texte = trim(preg_replace('#<[^<]*?>#m', '', $strMessage_Texte));
$strMessage_HTML = $strMessage;
$strMessage_HTML = trim(preg_replace_callback('#>(.*?)<#s', 'htmlentities1', $strMessage));
$strMessage_Final = 'This is a multi-part message in MIME format.
--%1$s
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
%2$s
--%1$s
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
%3$s
--%1$s--
';
break;
case '2':
$strEntetes .= 'Content-Type: text/plain; charset="iso-8859-1"' . "\r\n";
$strMessage_Texte = $strMessage;
$strMessage_Final = '%2$s';
break;
case '3':
$strEntetes .= 'Content-Type: text/html; charset="iso-8859-1"' . "\r\n";
$strMessage_HTML = trim(preg_replace_callback('#>(.*?)<#s', 'htmlentities1', $strMessage));
$strMessage_Final = '%3$s';
break;
}
$strEntetes = str_replace("\r\n", "\n", $strEntetes);
$strEntetes = str_replace("\r", "\n", $strEntetes);
$strEntetes = str_replace("\n", "\r\n", $strEntetes);
$strMessage_Final = sprintf($strMessage_Final, $strFrontiere, $strMessage_Texte, $strMessage_HTML);
$strMessage_Final = str_replace("\r\n", "\n", $strMessage_Final);
$strMessage_Final = str_replace("\r", "\n", $strMessage_Final);
$strMessage_Final = str_replace("\n", "\r\n", $strMessage_Final);
return (($bolEnvoyer) ? mail($strA, $strSujet, $strMessage_Final, $strEntetes) : false);
}
So call...
function Courriel_Envoyer($strA, $strDe, $strSujet, $strMessage, $intType = 1);
$strA = to
$strDe = from
$strSujet = subject
$strMessage = message
$intType = 1 : text + html, 2 : text, 3 : html