CLASSE PHP PERMETTANT D'ENVOYER UN MAIL À PARTIR D'UN TEXTE HTML AU FORMAT MIME.

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 1 janv. 2006 à 20:16
cs_Dharius Messages postés 1 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 28 février 2008 - 28 févr. 2008 à 15:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35357-classe-php-permettant-d-envoyer-un-mail-a-partir-d-un-texte-html-au-format-mime

cs_Dharius Messages postés 1 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 28 février 2008
28 févr. 2008 à 15:24
Domamge pas compatible avec Gmail ou Hotmail par exemple qui ne sont pas des clienst MIME....
franc666 Messages postés 3 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 janvier 2006
23 janv. 2006 à 22:26
Moi je dis :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/soluceq/www/news/newsletter/class_html_mime_mail_V1.php on line 132
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
1 janv. 2006 à 20:16
$myMail->add_html_image('../images/ASM_top.gif', 'images/ASM_top.gif', 'ASM_top', 'image/gif');

Ta classe aurait du permettre le fait de reconnaitre le format d'une image en fonction de son extension. Ca évite de le préciser en argument.

Après c'est pareil, tes 2 arguments dans add_html_image ne servent à rien, ce sont les mêmes à peu de choses près. Un peu de traitement en PHP (genre un substr()) aurait permis d'éviter ca.

Maintenant, j'attaque la classe en elle même :
"Sans argument => créer un $headers vide
* Si argument string> découpage du string
"public function html_mime_mail($headers = ''){"
Pas la peine de faire ca... autant faire quelque chose dans le genre :
public function __construct( $headers = NULL ) {
if ( !isset($headers) ) return; // Et encore, je trouve ca pas super bien codé, mais bon.

" if(is_string($headers)) {
$headers = explode("\r\n", trim($headers));
}
foreach($headers as $val) {
if(is_array($val)) {
foreach($val as $subval) {
if(!empty($subval) && is_string($subval)){
$this->headers[] = $subval;
}
}
}else {
$this->headers = $headers;
}
}
" Ca aussi, mal codé ce truc :
if ( is_array($headers) ) {
foreach ($headers as $key=>$val) {
if ( is_string($val) !empty($val) ) $this->headers[] = $val;
}
} else {
$this->headers = explode("\r\n", trim($headers));
}

La suite :
" public function set_body($text = ''){
if(is_string($text)){
" Condition ne servant à rien ici, tu déclare $text comme étant une chaine vide :o
public function set_body( string $text ) {
$this->body = $text;
}

Je ne parle pas de add_header() qui est une méthode un peu trop fouilli à mon gout !

" if(strtolower(substr($file, -4, 4))=='.gif' && $c_type=='application/octet-stream')
$c_type='image/gif';
if(strtolower(substr($file, -4, 4))=='.jpg' && $c_type=='application/octet-stream')
$c_type='image/jpeg';
" La c'est pareil, un peu de rangement ne fait pas de mal :p
if ( $c_type === 'application/octet-stream ) {
$file = strtolower(substr($file, -4,4));
if ( $file === '.gif' ) {
$c_type = 'image/gif';
} elseif ( $file === '.jpg' ) {
$c_type = 'image/jpg';
}
}

J'ai pas eu le temps de voir plus loin les méthodes privées, mais voici ce que je pense de celle qui sont public !
Rejoignez-nous