IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi d'e-mail


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut Envoi d'e-mail
    Bonjour,

    J'ai plusieurs pb avec l'envoi de mail :

    1) dans mon php.ini j'ai :
    SMTP = smtp.mail.yahoo.fr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $to = ...
    $from = "toto@yahoo.fr" ;
    ...
    $additionnal_header = "From: $from\r\nContent-type: text/html ;charset=ISO-8859-1\r\n" ;
     
    if (mail($to,$subject,$body,$additionnal_header) == FALSE) ...
    mail renvoie FALSE : est-ce du au fait que toto@yahoo.fr necessite un mot de passe pour l'envoi de mail ? Si oui, je ne vois pas comment définir les paramètres d'authentification SMTP avec la fonction mail de php. Peut-être est-ce dans les "additionnal parameters" donnés dans la doc... mais sans aucune explication sur leur contenu !?

    2) autre pb : dans le mail, j'ai du HTML avec un header qui contient le tag :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <link rel='stylesheet' type='text/css' href='./css/toto.css'></link>
    le style sheet n'est pas pris en compte. Par contre si je mets href='http://localhost/xxx/css/toto.css' ça marche...

    Merci.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Bonjour,
    Pour le probleme de smtp, celà peut venir de plusieurs choses, déjà il vaut mieux mettre le smtp de ton fournisseur d'accés dans le php.ini.
    Un petit post intéressant est ici : http://php.developpez.com/faq/?page=mail#envoi-mail

    Ensuite pour ton probleme de css, sache qu'il faut utiliser des liens absolus !
    Et d'ailleurs, il vaut mieux éviter de faire des fichiers css pour des raisons de compatibilité avec les clients mail, on préfère généralement du css "inline" mais là encore, l'interprétation n'est pas égale selon les clients utilisés. Généralement, un style épuré niveau css à base de table tr td aura plus de chances de passer sur les clients mail que des div "float". C'est paradoxal mais c'est comme ca.
    Si tu veux avoir peur, je te conseille de jeter un coup d'oeil à ce document :
    http://www.campaignmonitor.com/css/
    qui liste les balises autorisées par les différents clients mail.

    Enfin pour finir, je te conseille de ne pas t'embarasser toi même à coder l'envoi de mail (header notamment) et pour celà tu as phpmailer, et ca tombe bien, y'a un super tuto ici meme : http://stephaneey.developpez.com/tut...php/phpmailer/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut encore à suivre
    Merci Raideman, mais je n'ai pas encore tout compris / résolu :

    1) j'utilise la fonction "mail" de php car auparavant j'utilisais le package Mail de PEAR et ça marchait ... MAIS mon hébergeur (1&1) me dit que je ne peux pas utiliser ce package Mail et que je dois passer par la fonction mail de php. Autant quand j'utilisais le package Mail de PEAR, je pouvais donner le nom d'utilisateur et mot de passe lors de la connection SMTP, autant avec la fonction mail... je ne vois pas comment je peux le faire ?

    2) OK pour faire du "inline" dans la présentation du mail, bien que je ne trouve pas ça très "propre" puisque cela va me faire dupliquer des styles définis par ailleurs...

    jp

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Re bonjour,

    1) Dans ce cas là, as tu un nom de domaine associé à ton hébergement ? Si c'est le cas, tu peux directement utiliser le SMTP de ton nom de domaine et utiliser phpMailer qui gere les SMTP, Qmail, SendMail et la fonction mail de php de maniere plus transparente pour le développeur. (http://stephaneey.developpez.com/tut.../phpmailer/#L4)

    2) Je suis tout à fait d'accord mais c'est malheureusement comme ca et c'est un sacré casse tête la compatibilité des clients email.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut suite
    Re - merci Raideman,

    1) je suis têtu et je préfère faire au + simple c'est-à-dire la fonction mail de php ... à moins qu'on me prouve que ça n'est pas possible compte-tenu que le serveur SMTP requière une authentification. Dans la doc http://fr2.php.net/manual/fr/function.mail.php je les trouve 1 peu léger concernant $additional_parameters : comment savoir ce qu'on peut mettre là-dedans (j'aurai supposé par ex: le user/passwd pour authentification SMTP).

    2) OK, les grands esprits informaticiens se rencontrent

    A+
    JP

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Pour gérer l'authentification SMTP, il va te falloir faire plus que d'utiliser la fonction mail qui de mémoire, ne gère pas l'authentification (les additional parameters ne me semble pas servir à celà).


    En fait, pour t'authentifier, il faut aller toi meme communiquer avec le serveur SMTP et aller t'authentifier dessus manuellement (pour ca que je conseille phpmailer qui le fait pour toi vu que tu ne peux utiliser pear).

    sinon si tu veux le développer, c'est à base de fsockopen, fputs, de RFC évidemment (mais bon ce serait réinventé la roue)

    NB: voici un fil qui pourrait t'intéresser (http://www.karakas-online.de/forum/viewtopic.php?t=489 anglais ou ils expliquent qu'il n'y a pas de moyens simples et génériques de s'authentifier SMTP via php si ce n'est en utilisant des classes de gestion du protocole SMTP directement)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut
    OK, Raideman,

    Si je résume en fait mon pb :

    1) sur le serveur de 1&1, je ne peux pas utiliser le package Mail de PEAR, j'utilise donc la fonction mail de php. Comme le php s'exécute sur le serveur de 1&1 je n'ai pas de pb d'authentification, ca marche même avec un e-mail 1&1 qui requière normalement une authentification
    2) lorsque j'exécute mon code sur mon pc en local (pour tester avant de mettre sur le serveur), je voulais que ce soit le même code ... or la par contre comme je passe par 1 serveur SMTP qui n'est pas local, avec un e-mail qui requiert authentification, je suis obligé de m'authentifier... donc je ne peux pas utiliser la fonction mail ! et j'utilise Mail de PEAR

    Conclusion : je suis obligé d'avoir 1 code différent en local et sur l'hébergeur.

    A moins que... phpmailer soit accepté sur mon hébergeur ...

    A suivre...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Points : 71
    Points
    71
    Par défaut encore autre chose
    Autre chose : j'ai une image dans mon HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    $body .= "<img alt='' src='http://".WEB_SERVER."/logos/toto.png' '>" ;
    ...
    avec WEB_SERVER = 'www.monsite.fr'

    et l'image n'est pas chargée sur mon client mail (bien que j'accepte les images)... une idée ?

Discussions similaires

  1. L'envois de mail ne m'envois pas de mail ...
    Par PrinceMaster77 dans le forum ASP
    Réponses: 10
    Dernier message: 27/10/2004, 16h28
  2. Envois d'un mail Avec CDont
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/10/2004, 17h34
  3. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18
  4. Envoi d'un mail automatiquement
    Par batmat86 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/06/2004, 09h20
  5. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo