Je souhaite envoyer des e-mails via du code php hébergé localement.
<?php
$email = "[email protected]";
$titre = "My subject";
$message = "Text message !";
mail($email, $titre, $message);
?>
Lorsque j'exécute ce code, j'obtiens l'erreur suivante:
Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\...
Je suis entré dans le php.ini
fichier et il semble être déjà bien configuré.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
Comment puis-je réparer cela ?
Merci
Il est configuré pour utiliser localhost:25
pour le serveur de messagerie.
Le message d'erreur indique qu'il ne peut pas se connecter à localhost:25
.
Par conséquent, vous avez deux options:
J'ai passé des heures là-dessus. Auparavant, je n'obtenais pas d'erreurs, mais je n'ai jamais envoyé de courrier. Finalement, j'ai trouvé une solution et je voudrais la partager.
<?php
include 'nav.php';
/*
Download PhpMailer from the following link:
https://github.com/Synchro/PHPMailer (CLick on Download Zip on the right side)
Extract the PHPMailer-master folder into your xampp->htdocs folder
Make changes in the following code and its done :-)
You will receive the mail with the name Root User.
To change the name, go to class.phpmailer.php file in your PHPMailer-master folder,
And change the name here:
public $FromName = 'Root User';
*/
require("PHPMailer-master/PHPMailerAutoload.php"); //or select the proper destination for this file if your page is in some //other folder
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465"); //No further need to edit your configuration files.
$mail = new PHPMailer();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]"; //account with which you want to send mail. Or use this account. i dont care :-P
$mail->Password = "trials.php.php"; //this account's password.
$mail->Port = "465";
$mail->isSMTP(); // telling the class to use SMTP
$rec1="[email protected]"; //receiver. email addresses to which u want to send the mail.
$mail->AddAddress($rec1);
$mail->Subject = "Eventbook";
$mail->Body = "Hello hi, testing";
$mail->WordWrap = 200;
if(!$mail->Send()) {
echo 'Message was not sent!.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo //Fill in the document.location thing
'<script type="text/javascript">
if(confirm("Your mail has been sent"))
document.location = "/";
</script>';
}
?>
Vous devrez installer un serveur de messagerie local pour ce faire. Si vous souhaitez l'envoyer à des adresses e-mail externes, il peut se retrouver dans des e-mails indésirables ou ne pas arriver du tout.
Un bon serveur de messagerie que j'utilise (je l'utilise sous Linux, mais il est également disponible pour Windows) est Axigen: http://www.axigen.com/mail-server/download/
Vous devrez peut-être une certaine expérience avec les serveurs de messagerie pour l'installer, mais une fois qu'il fonctionne, vous pouvez faire tout ce que vous voulez avec.
essaye ça
ini_set("SMTP","aspmx.l.google.com");
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: [email protected]" . "\r\n";
mail("[email protected]","test subject","test body",$headers);