我使用以下代码...
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = $USR_EMAIL; // SMTP username
$mail->Password = $MAIL_PWD; // SMTP password
Run Code Online (Sandbox Code Playgroud)
我想问一些简单的问题..有没有办法将数据库中以md5格式保存的密码传递给phpMailer?phpMailer 是否支持任何其他类型的散列?是否有支持散列密码的发送电子邮件 php 脚本?我很害怕我将在任何地方存储电子邮件密码而没有某种加密的想法..
小智 5
您必须将普通密码发送到 SMTP。散列函数是单向的,它们只是“混淆”输入,因此 SMTP 无法使用它来验证您的身份。
您可以对密码(可能是 AES)进行加密,然后存储密文和秘密(可能作为 env. 变量),并将解码后的通行证传递给邮件程序。
例子:
<?php
$secret_key = 'supersecret key';
$password = 'somepass';
// encrypt
// calculate cipher, and store somewhere
$cipher = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $password, MCRYPT_MODE_ECB);
// use the cipher
$mail->Username = $USR_EMAIL; // SMTP username
$mail->Password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $cipher, MCRYPT_MODE_ECB); // SMTP password
?>
Run Code Online (Sandbox Code Playgroud)