Problèmes d'envoi mail (SMTP + en-tête)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problèmes d'envoi mail (SMTP + en-tête)

Re: Problèmes d'envoi mail (SMTP + en-tête)

par Ryle » 11 janv. 2010, 23:00

Le plus simple est effectivement d'utiliser une librairire existante. Quoi qu'il en soit, pour répondre à tes questions :

- afin de pouvoir utiliser l'authentification smtp, il te faut activer PEAR et utiliser sa classe Mail (tu pourras alors spécifier l'identifiant et le mot de passe du smtp dans le header)

- pour ton problème d'expéditeur, c'est parce qu'il faut séparer les différents entêtes d'un retour à la ligne, sans cela, php colle les deux chaines bout à bout, et ça te fait un expéditeur bizare ;)

Re: Problèmes d'envoi mail (SMTP + en-tête)

par stopher » 11 janv. 2010, 19:28

Salut ,
il existe de trés bonnes librairies pour ça ,

Trés simples à utiliser ...

Voici ma préférée ( Rmail ) : http://www.phpguru.org/downloads/html.m ... for%20PHP/

Les exemples fournis sont tres explicites :

exemple

Problèmes d'envoi mail (SMTP + en-tête)

par Ariochs » 11 janv. 2010, 16:30

Bonjour.

J'aurais besoin de votre aide pour 2 problèmes que je n'arrives pas à résoudre.

J'ai un code en php qui me permet d'envoyer des mails. Ce dernier fonctionne très bien sur le serveur A, mais pas sur le serveur B.

Après avoir téléphoné a la société qui s'occupe du serveur B, il semblerait que le problème soit dû au fait qu'il y a sur la même machine, l'hébergement web + un serveur mail. Du coup mes envois ne passe pas, car le port SMTP est déjà utilisé par le serveur mail, et celui ci a besoin d'une authentification pour envoyer des mails. Ils m'ont dit de trouver le moyen de mettre le SMTP dans mon code, avec pseudo et mdp d'une adresse mail de leur serveur.

Seul problème je ne vois pas comment mettre tout ça dans mon code php.. (je me demande même si c'est possible xD)

Voici donc mon code :
<?php

	//Création du header
	$header = "From: [email protected]";
	
	$header .= "Content-type: text/html; charset-iso-8859-1\r\n";
	
	//Destinataire
	$dest = "[email protected]";
	
	//Sujet
	$sujet = "Test mail";
	
	//Contenu
	$msg = "<html>\r\n";
	$msg .= "<head>\r\n";
	$msg .= "</head>\r\n";
	$msg .= "<body>\r\n";
	$msg .= "</body>\r\n";
	$msg .= "<h1>Mon message test</h1>\r\n";
	$msg .= "</body>\r\n";
	$msg .= "</html>\r\n";
		
	//Fontion d'envoi de mail
	/*
	* 	$dest 	-> 	destinataire
	* 	$sujet 	->	sujet du mail
	* 	$msg	->	contenu du mail
	*	$header	->	en-tête
	*/
	mail($dest,$sujet,$msg,$header);
?>
Le second problème vient au niveau de l'en-tête. Quand j'envoie un mail avec le serveur A, j'ai en expéditeur : [email protected]: text/html
Une idée pour corriger ça ?

Merci d'avance pour votre aide