Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative à PHPMailer pour l'envoi de mot de passe perdu #401

Merged
merged 1 commit into from
Apr 14, 2020
Merged

Alternative à PHPMailer pour l'envoi de mot de passe perdu #401

merged 1 commit into from
Apr 14, 2020

Conversation

kazimentou
Copy link
Contributor

No description provided.

@haruka-7
Copy link
Collaborator

Hello,

PHPMailer permet également d'utiliser la fonction mail() de PHP, c'est pourquoi dans la fonction sendMailPhpMailer() il y a les lignes :

$mail->Mailer = $conf['email_method']; 
[...]
switch ($conf['email_method']) {...}

Dans le switch, on ne test que les cas "smtp" et "smtpoauth", car il y a des attributs spécifiques à "setter" pour ces protocoles. Mais dans le cas ou l'on souhaite utiliser la fonction mail(), il suffit de laisser ces attributs à null.

C'est pourquoi, pour moi il n'est pas nécessaire de faire le test ci-dessous dans "sendLostPasswordEmail()", on peut utiliser uniquement PHPMailer qui par défaut, dans une installation de PluXml, utilisera la fonction mail() de PHP.

if(empty($this->aConf['email_method']) or $this->aConf['email_method'] == 'sendmail' or !method_exists(plxUtils, 'sendMailPhpMailer'))

Avec l'utilisation de PHPMailer, la fonction sendMail() de PlxUtils n'est conservée que pour la rétrocompatibilité avec les plugins, mais on peut considérer qu'elle est obsolète.

@kazimentou
Copy link
Contributor Author

Salut,

Non pas vraiment !
plxUtils::sendmail() ne nécessite pas de connaitre l'adresse de l'expéditeur.
Si elle manque le serveur SMTP de l'hébergeur du site la rajoutera et sera bien sûr une adresse valide pour lui. Ce qui ne sera pas forcément le cas si l'adresse donnée est d'un autre domaine.
Certains serveurs SMTP ont une politique assez stricte pour lutter contre le spam.
Avoir voulu imposer l'adresse de l'expéditeur dans plxUtils::sendmail() pose des problèmes d'utilisation depuis longtemps. La fonction mail() de PHP ne l'exige pas. Alors restons simple.

if(empty($this->aConf['email_method']) or $this->aConf['email_method'] == 'sendmail' or !method_exists(plxUtils, 'sendMailPhpMailer')) {
    # fonction mail() intrinséque à PHP
    $success = plxUtils::sendMail('', '', $user['email'], $mail['subject'], $mail['body']);
} else {
    # On utilise PHPMailer
    if (!empty($this->aConf['title'])) {
        $mail ['name'] = $this->aConf['title'];
    } else {
        $mail ['name'] = $this->aTemplates[$templateName]->getTemplateEmailName();
    }
    $mail ['from'] = $this->aTemplates[$templateName]->getTemplateEmailFrom();
    // send the e-mail and if it is OK store the token
    $success = plxUtils::sendMailPhpMailer($mail['name'], $mail['from'], $user['email'], $mail['subject'], $mail['body'], false, $this->aConf, false);
}

@haruka-7 haruka-7 merged commit 6757c86 into pluxml:master Apr 14, 2020
@haruka-7 haruka-7 added this to the PluXml 5.8.3 milestone Apr 17, 2020
haruka-7 pushed a commit that referenced this pull request Apr 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants