culture [PHP] envoyer des mails avec le nom de domaine comme expediteur

Statut
La discussion n'est pas ouverte à d'autres réponses

PiJ

Expert
Bonjour,

comme mon précédent problème a été résolut rapidement, je viens exposé le suivant^^

j'envoie des mails en cas d'oublie du mot de passe depuis mon site via la fonction php mail()

seulement l'adresse d'envoie ne me plait pas trop: "www@ks220551.kimsufi.com"

je dispose d'un nom de domaine avec deux adresse existante (webmaster@taurusmt2.fr) chez OVH

j'aimerai que ce soit cette adresse mail qui envoie les mails que le site envoie

comment dois-je m'y prendre, il semble qu'il faille géré le smtp

dans php.ini j'ai ça:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
il faudrait modifier cela seulement, je n'ai rien ou entrer le nom et mot de passe du compte mail.
 
Dernière modification par un modérateur:
Salut,

Le soucis c'est que tu veux utiliser un compte SMTP sur un autre serveur que ton serveur Apache, or PHP ne gère pas les SMTP avec authentification. Il faut donc que tu passes par une extension telle que PEAR ou PHPM@iler si tu veux utiliser ce compte SMTP, ce qui implique une complication de ton code PHP en plus de l'installation de l'extension.
 
en faite sur kimsufi j'ai apach et php, chez OVH j'ai juste mon nom de domaine (et deux adresse mails qui ont été faite à la création du domaine).

Donc a ton avis je vais trop en chier a envoyer les mail a partir de kimsufi sous le nom de domaine que je possède chez OVH?

tu penses que sa serait plus simple de mettre une adresse gmail?
ou à la rigueur de modifier le "www"?
 
Dernière édition:
Si tu utilises une autre adresse mail que celle fournie par kimsufi, il faudra que tu passes par un des outils que j'ai cité, ou équivalents. A moins que tu disposes d'un compte SMTP ne nécessitant pas d'authentification, mais là personnellement je n'en connais pas parmi les FAE.

PHP est conçu pour utiliser soit le mail de la machine où il est installé, soit un SMTP autre ne nécessitant pas d'authentification. Et cela est bien dommage quand on est dans un cas comme le tien. Mais tu peux quand même le faire avec les outils que je cite.

Par contre, tu peux garder le ks220551.kimsufi.com et changer le www en changeant le 4ème paramètre de la fonction mail() :

PHP:
<?php
 $destinataire = "destinataire@exemple.com";
 $sujet = "Objet du mail";
 $message = "Bonjour, je suis un e-mail envoyé par PHP.";
 $headers = "From: expediteur@monsite.com\r\n
Reply-To: expediteur@monsite.com\r\n
X-Mailer: PHP/" . phpversion();

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

Ici il faudra remplacer monsite.con par ks220551.kimsufi.com et expediteur par ce que tu veux.

Tu peux également modifier cette adresse d'envoi dans ton php.ini via sendmail_from.

icon4.gif
Attention ! Quand tu utilises la modification d'expéditeur via mail() ou via php.ini tel que présenté, prends bien soin de garder comme domaine celui du site d'envoi, auquel cas tous les mails envoyés seront systématiquement considérés comme du spam par les FAE.
 
Dernière édition:
oui c'est ce que j'ai remarqué^^

j'avais déja essayé avec mon adresse gmail de cette manière mais je ne recevais plus les mail.

je vais donc pour le moment me contenter de modifier le "www"

quand j'aurais plus de temps j'utiliserai ce que tu as cité plus haut.

merci beaucoup de ton aide.

je confirme si ça marche

edit: je suis sous freebsd cela semble poser des problème avec le from...
 
Dernière édition:
Ah non normalement pas besoin de créer l'adresse mail. C'est étrange que ton mail parte de www et non de noreply-taurusmt2 :dubitatif:

Tu peux me montrer ton code PHP ? Tu peux utiliser les balises [noparse]
PHP:
 et
[/noparse] pour coloriser le code PHP dur le fofo :icon_wink-221e:
 
voici le code php de la page, si il peut servir à d'autres qu'ils n'hésitent pas

url de la page

PHP:
/**
* TauRuS-mt2
* @author Salombo 
*
* [newmdp.php]
* Page de renvoie d'un nouveau mot de passe.
* 
*
**/
//Si on envoie le formulaire 
if(isset($_POST['login']) and isset($_POST['mail'])) 
{
$tpl->assign('envoie_form', '1');
 
//Sécurité : On protège les varriables.
 
$pseudo=mysql_real_escape_string($_POST['login']); 
$mail=mysql_real_escape_string($_POST['mail']);
$errors = '';
 
//on verifie que le compte existe
mysql_select_db("account");
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM `account` WHERE login='$pseudo'");
if (mysql_result($sql, 0, 'nb_pseudo') == 1)
{
// on verifie que le mail est correcte
$requette = ("SELECT email FROM account WHERE login LIKE '$pseudo'");
$sql2 = mysql_query($requette) or die('Erreur SQL !
'.$requette.'
'.mysql_error()); 
$donnees = mysql_fetch_array($sql2);
if ($mail == $donnees['email'])
{
 
//creation d'un nouevau password
 
// On indique que le mot de passe aléatoire contiendra entre 8 et 10 caractères
$nbre_caracteres = rand(8,10);
// On créé un tableau contenant la liste des caractères qui pourront être utilisés pour le nouveau mot de passe
$liste_caracteres = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
// On initialise la variable $nv_pass
$nv_pass = '';
// On effectue une boucle qui choisira aléatoirement des caractères parmi la liste et retournera autant de caractères qu'il aura été défini par la variable $nbre_caracteres
for ($i = 0 ; $i < $nbre_caracteres ; $i++) {
$nv_pass .= ($i%2) ? strtoupper($liste_caracteres[array_rand($liste_caracteres)]) : $liste_caracteres[array_rand($liste_caracteres)];
}
// On enregistre le nouveau mot de passe dans la db
$sql3="UPDATE account set password = (password ('$nv_pass')) WHERE login = '$pseudo'";
mysql_query($sql3) or die (mysql_error());
//On envoie un mail avec le nouveau mot de passe
$entete .= 'Bonjour '.$pseudo;
$titre = 'TauRuS-mt2 - Demande de nouveau mot de passe';
$message = '
Vous avez reçu cet email depuis le site http://www.taurusmt2.fr
Un nouveau mot de passe vous a été attribué suite à votre demande.
Vous pourrez le modifier une fois connecté sur le site dans l\'onglet "Mon Compte".
Votre pseudo est : '.$pseudo.'
Votre nouveau mot de passe est : '.$nv_pass.'
Cordialement, l\'équipe de TauRuS-mt2';
$headers = 'MIME-Version: 1.0'."\r\n".'Content-type: text/plain; charset=utf-8;'."\r\n".'From: "TauRuS-mt2" '."\r\n".'Reply-To: noreply-taurusmt2@ks220551.kimsufi.com'."\r\n".'X-Mailer: PHP/' . phpversion();
mail($mail, $titre, $message, $entete, $headers);
}
else { $errors =3; }//3: Votre email est invalide.
}
else { $errors =2; }//2: le pseudo n'existe pas.
 
if($errors == '') //Si l'envoie a fonctioné
{ $tpl->assign('valid_form', '1'); }
else //Sinon on charge les erreurs
{ $tpl->assign('valid_form', $errors); }
}
//Si on envoie pas le formulaire, on l'affiche
else 
{
$tpl->assign('envoie_form', '0');
}
$tpl -> parse('newmdp.tpl');
 
Dernière édition:
La syntaxe de ta commande From dan tes headers n'est pas bonne. Tu as ceci :
Code:
From: "TauRuS-mt2"
Tu devrais avoir ceci :
Code:
From: TauRuS-mt2 &lt;noreply-taurusmt2@ks220551.kimsufi.com&gt;

Essayes déjà ça pour voir :icon_wink-221e:
 
Dernière édition:
j'ai déjà essayé il me semble,

j’édite pour te dire dans 5 minutes

edit: j'ai oublié ma clé USB au boulot avec mes accès au serveur^^
je te dis donc demain si ça marche
 
Dernière édition:
bonsoir,

je confirme que cela ne fonctionne pas non plus sans les ".
le mail arrive toujours en www@....

il ne faut pas être sur Windows pour que cela marche?
 
Non non, c'est une commande OS-indépendante. Je l'utilise dans BenchTab pour le forum, qui est sous Linux, et elle fonctionne très bien.

En revanche, je viens de voir que tu as mis un point-virgule après ton charset=utf-8, or il ne devrait pas y en avoir. Le seul point-virgule à mettre dans un header de mail et entre Content-type et charset. Peut-être est-ce la cause :dontknow-102c:
 
non pareil,

mais j'ai remarqué dans les logs que le mail est envoyé a localhost puis il doit etre rediriger vers le destinataire final, ne serait ce pas pour cela que je ne peux pas modifier l’expéditeur,

car il me semble que localhost reçoit bien un mail de l'adresse que je met dans expéditeur de la fonction mail()

je vais essayer de retrouver le fichier contenant ces infos pour être plus précis.
 
Statut
La discussion n'est pas ouverte à d'autres réponses
Retour
Haut