<?php
require 'mail/class.phpmailer.php';
$mail = new PHPMailer();
$mail->Host = 'mail.cancerbengal.com';
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
/*** various $var declarations removed as irrelevant **/
if(isset($_POST['submit']))
{
/**various irrelevant code removed**/
}
$mail->IsHTML(true); // if you are going to send HTML formatted emails
$mail->SingleTo = true;
$mail->Subject = "Testing PHPMailer with localhost";
$mail->Body = "You have received a new message. ".$messageContents;
$file_to_attach = 'photo';
$mail->AddAttachment( $file_to_attach , '$photo' );
if(!$mail->Send())
{
echo "Message was not sent <br />PHPMailer Error: " .$mail->ErrorInfo;
}
else
{
echo "<script>alert('Your Registration is Successfull')</script>";
}
这是服务中的mail1.php
,显示错误class.phmailer.php
无法打开。怎么解决?实际上,我想发送带有两个附件的邮件,但附件不会发送。任何帮助都将受到高度赞赏。错误是
错误输出:
警告:require(mail / class.phpmailer.php):无法打开流:否 /home/cancerbengal/public_html/mail1.php上的此类文件或目录 第2行
致命错误:require():需要打开失败 'mail / class.phpmailer.php'(include_path ='。:/ usr / lib / php: / usr / local / lib / php')/home/cancerbengal/public_html/mail1.php on 第2行
答案 0 :(得分:0)
您真的应该更新PHPMailer脚本以使用更新的PHPMailer并使用自动加载器。我强烈建议从github下载最新的PHPMailer:
https://github.com/PHPMailer/PHPMailer
现在,您的问题是该文件在指定的位置不存在,
您在require 'mail/class.phpmailer.php';
<sourcefile>
|
|
\-----> mail folder / class.phpmailer.php
这意味着:
您没有将类文件上传到远程服务器。
您的<sourcefile>
本身位于不同/不正确的位置
如果您的<sourcefile>
在其他地方的include
处,则在其他脚本中,其中的包含相对于自己的位置,而不是它是'父'PHP文件。
<强>解决方案:强>
使用$_SERVER['DOCUMENT_ROOT']
给出包含路径的绝对值,所以:
require "mail/class.phpmailer.php";
变为:
require $_SERVER['DOCUMENT_ROOT']."/mail/class.phpmailer.php";
无论你的<sourcefile>
位于何处,这都会有效。