我正在使用php邮件程序类通过我的脚本发送电子邮件。
结构如下:
$ mail = new 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';
?>
这足够和足够安全吗?
谢谢,
艾伦。
答案 0 :(得分:3)
我认为您的凭据应存储在webroot之外的配置文件(INI或JSON)中。由于协议需要原始凭证,因此这是最安全的方法。另外,不要忘记为配置文件设置适当的访问权限。
小例子:
<?php
$config = parse_ini_file('/var/app/config.ini', true);
// PHPMailer
$mail->Username = $config['email']['username'];
$mail->Password = $config['email']['password'];