3

我正在使用 php mailer 类通过我的脚本发送电子邮件。

结构如下:

$mail = 新的 PHPMailer;

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'myserver.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'info@somedomain.com';                            // SMTP username
$mail->Password = 'user123';                           // SMTP password
$mail->SMTPSecure = 'pass123';  

在我看来,邮箱凭据清晰可见是一个安全漏洞。所以我想我可以把这些放在 web 根目录之外的外部文件中。我的问题是我将如何为 $mail 对象分配这些值。

我当然不知道如何使用include和/或requires......它会简单地成为......

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'myserver.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication

includes '../locationOutsideWebroot/emailCredntials.php';

$mail->SMTPSecure = 'pass123';

然后 emailCredentails.php:

<?php
$mail->Username = 'info@somedomain.com';
$mail->Password = 'user123';
?>

这是否足够和安全?

谢谢,

艾伦。

4

1 回答 1

4

我相信您的凭据应该存储在 webroot 之外的配置文件(INI 或 JSON)中。由于该协议需要原始凭据,因此这是最安全的方法。另外,不要忘记为配置文件设置适当的访问权限。

小例子:

<?php

$config = parse_ini_file('/var/app/config.ini', true);

// PHPMailer
$mail->Username = $config['email']['username'];
$mail->Password = $config['email']['password'];
于 2013-10-17T15:56:25.423 回答