Gardez à l'esprit, je suis nouveau à PHPComment intégrer auth SMTP dans un script PHP sendmail
Salut, je vais avoir du mal à envoyer du courrier SMTP à partir d'un script qui utilise uniquement sendmail.
Le code ci-dessous est mon ancien code d'origine qui fonctionne mais qui donne un avertissement sur Gmail lorsqu'il est affiché. Il dit que ce message ne peut pas être vérifié. J'essaie d'envoyer à l'utilisateur ses informations d'identification à partir d'un formulaire de réinitialisation de mot de passe (je vais aussi implémenter cela sur le formulaire d'inscription).
Code d'origine:
##### Mail functions #####
function sendLostPasswordEmail($myusername, $email, $newpassword)
{
global $domain;
$message = "
You have requested a new password on example.com
Here is Your new password information:
username: $myusername
password: $newpassword
Regards,
example Administration
";
if (sendMail($email, "Your password has been reset.", $message, "[email protected]"))
{
return true;
} else
{
return false;
}
}
function sendMail($to, $subject, $message, $from)
{
$from_header = "From: $from";
if (mail($to, $subject, $message, $from_header))
{
return true;
} else
{
return false;
}
return false;
}
function sendActivationEmail($myusername, $password, $uid, $email, $actcode)
{
global $domain;
$link = "https://example.com/includes/activate.php?uid=$uid&actcode=$actcode";
$message = "
Thank you for registering on https://example.com,
Your account information:
username: $myusername
password: $password
Please click the link below to activate your account.
$link
Regards
$domain Administration
";
if (sendMail($email, "Please activate your account.", $message, "[email protected]"))
{
return true;
} else
{
return false;
}
}
?>
code à mettre en œuvre (je pense)
require_once "php/Mail/mail.php";
$from = "Example Company <[email protected]>";
$to = "<>";
$subject = "Your Password Has Been Reset";
$body = "$message";
$host = "mail.example.com";
$port = "465";
$username = "[email protected]";
$password = "***";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
Je crois que le 2ème extrait de code s'inscrira dans cependant l'endroit d'origine, je l'ai essayé pour plusieurs heures pour résoudre ce problème en vain. J'apprécie toute aide, si vous avez besoin de voir le code du formulaire de récupération de mot de passe ou pensez que je pourrais améliorer ma question s'il vous plaît dites-moi.
Mon problème n'est pas la connexion, mais l'implémentation. Je sais comment me connecter au serveur SMTP mais pas comment intégrer l'authentification SMTP dans mon script existant. Merci –
Quelle bibliothèque utilisez-vous? Il existe de nombreuses bibliothèques sur Google, phpMailer, SwiftMailer .... –
Il s'agit d'un paquet Pear http://pear.php.net/package/Mail/docs/1.4.1/Mail/Mail_smtp.html –