我正在尝试将swift邮件程序应用到我的网站中,以便我可以向注册用户发送密码恢复电子邮件。我正在使用Dreamweaver。我做了什么:
1) Downloaded Swift-4.2.2.tar
2) Extracted it
3) Uploaded to my host in /Domain/classes/lib
4) Included it in Recovery.php
这是我的文件结构
Main Folder
|classes
|Swift
|Private
|Recovery.php
以下是Recovery.php
的代码:
require_once '../classes/lib/swift_required.php';
// Create the Transport
$email_to = $_POST["email"];
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465)
->setUsername('Username')
->setPassword('Password')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create a message
$message = Swift_Message::newInstance()
// Give the message a subject
->setSubject('Password Recovery')
// Set the From address with an associative array
->setFrom(array('Username@domain.com' => 'Username'))
// Set the To addresses with an associative array
->setTo($email_to)
// Give it a body
->setBody('Below is your temporary password. Please make sure to login in immediately and change it to a password of your choice.\n'.$password);
// Send the message
$result = $mailer->send($message);
但是这不包括库,因为如果我做Swift_SmtpTransport::
那么Dreamweaver应该弹出一个智能感知的东西,它给我方法或变量的选项,这意味着它可以看到类及其所有成员项。但由于它没有弹出选项,我感觉它无法看到什么是快速类。当我尝试运行它时,控制台网络选项卡表示它在等待一段时间后才返回500 Internal Server Error
。所以它没有正确地包括库。知道我做错了什么吗?
编辑: 错误报告输出:
Warning: require(/*/*/*/Main Folder/classes/lib/classes/Swift.php): failed to open stream: No such file or directory in /*/*/*/Main Folder/classes/lib/swift_required.php on line 22
Fatal error: require(): Failed opening required '/*/*/*/Main Folder/classes/lib/classes/Swift.php' (include_path='.:/usr/local/lib/php') in /*/*/*/Main Folder/classes/lib/swift_required.php on line 22
答案 0 :(得分:2)
打开swift_required.php文件。第22行有一个require()。调整它的路径以匹配lib / classes / Swift.php
答案 1 :(得分:0)
当您在swift_required.php中检查路径时,它们可能会有所帮助,它们必须在被调出文件中正确
答案 2 :(得分:0)
尝试使用绝对路径而不是相对路径
例如在linux中
require_once '/var/www/project/mailer/lib/swift_required.php' ;
或者尝试用
替换上面的行require_once '/path/to/mailer/lib/swift_init.php';
swift邮件程序使用自己的类自动加载器,您是否已经有其他自动加载器?