我正在使用来自localhost的PHPMailer发送电子邮件。我正在使用附件选项通过电子邮件发送图像。但它告诉我以下错误信息:
错误消息:
Failed to move file to C:\Users\Work Station\AppData\Local\Temp\3c3D24E.tmp
我的代码:
require '../PHPMailerAutoload.php';
$m = new PHPMailer();
$m->isSMTP();
$m->SMTPAuth = true;
//$m->SMTPDebug = 2;
$m->Host = gethostbyname('smtp.gmail.com');
$m->Username = 'username';
$m->Password = 'password';
$m->SMTPSecure = 'ssl';
$m->Port = 465;
$m->From = 'support@from.com';
$m->FromName = 'Shibbir Ahmed';
$m->addReplyTo($to);
$m->addAddress($to, 'Shibbir Ahmed');
//Attach multiple files one by one
if(isset($_FILES['userfile'])) {
for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
$uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
$filename = $_FILES['userfile']['name'][$ct];
if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
$m->addAttachment($uploadfile, $filename);
} else {
echo 'Failed to move file to ' . $uploadfile;
}
}
}
$m->Subject = $subject;
$m->Body = $message;
$m->AltBody = strip_tags($message, "<p>, <br>");
答案 0 :(得分:1)
这意味着您的PHP配置(在php.ini中)指向一个无法写入的临时目录。 sys_get_tmp_dir()
指向该位置,您可以使用sys_temp_dir
php.ini设置进行设置。也许值得检查upload_tmp_dir
设置。
您可能还遇到会话存储等其他问题。修复该位置的权限,以便您具有写访问权限,或将其指向您具有写访问权限的位置。