这些配置文件有什么问题吗?
Email.class.php
<?php
class Email{
public static function Send($to, $subject, $body){
if(Config::Email()->Enable != true) return true;
try{
$mail = new \PHPMailer\PHPMailer\PHPMailer;
$mail->Debug =
$mail->SMTPOptions = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false,
"allow_self_signed" => true
)
);
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = Config::Email()->Hostname;
$mail->SMTPSecure = Config::Email()->Encryption;
$mail->Port = Config::Email()->Port;
$mail->Username = Config::Email()->Username;
$mail->Password = Config::Email()->Password;
$mail->setFrom(Config::Email()->Username, Config::Email()->Name);
$mail->addReplyTo(Config::Email()->Username, Config::Email()->Name);
$mail->addAddress($to);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
//$mail->AltBody = $alt;
$result = $mail->send();
if(!$result && Config::Debug()->Email) IO::Dump($mail->ErrorInfo);
return $result;
}catch(Exception $e){
if(Config::Debug()->Email) IO::Dump($e);
return false;
}
}
}
?>
配置文件
;Config
[Email]
Enabled = true
Hostname = "domain.tld"
Encryption = "STARTTLS"
Port = "587"
Username = "admin@domain.tld"
Password = "admin$#@!1"
Name = "Admin"
[Cache]
Enabled = true
Lifespan = 3600
[Debug]
Errors = true
Parser = false
Database = false
Email = true
我的应用程序没有发送电子邮件-但是,它也没有返回错误。我只是确保配置选项定义正确。
答案 0 :(得分:0)
您的代码具有基本的语法错误,将无法运行。
您不仅可以组成属性并期望它们做一些神奇的事情,也不能为未定义的实际属性值并希望它们起作用。
Debug
属性不存在。对于调试输出,所需的属性是SMTPDebug
,并且您可能希望将其设置为2
。
SMTPSecure
属性接受tls
,ssl
和false
的值。没有其他人。
Port
是整数,而不是字符串。
除非您确切地知道为什么,否则请不要禁用证书验证。 “因为它使它起作用”不是适当的理由。
如果发件人地址与发件人地址相同,则无需设置答复地址。
其中一个或多个可以解决您的问题,但是如果没有更多有关该问题的信息,我们将无法猜测更多信息,您可以使用《 PHPMailer故障排除指南》中的建议进行诊断。