我正准备为一个需要用户填写许多字段并将发送到指定电子邮件的网站创建一个表单页面。
到目前为止,我已经创建了一个虚拟 php 电子邮件页面,它使用 Google 的 SMTP 获取您的消息、1 个附件和收件人电子邮件地址。
这是我的uploadtest.html代码:
<body>
<h1>Test Upload</h1>
<form action="email.php" method="get">
Message: <input type="text" name="message">
Email: <input type="text" name="email"><br>
Attach File: <input type="file" name="file" id="file">
<input type="submit">
</form>
</body>
uploadtest.html 是用户将看到的
这是 email.php 的代码:
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$recipiant = $_GET["email"];
$message = $_GET["message"];
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // SMTP authentication
$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->Port = 465; // SMTP Port
$mail->SMTPSecure = 'ssl';
$mail->Username = "xxxxx@gmail.com"; // SMTP account username
$mail->Password = "xxxxxxxx"; // SMTP account password
$mail->AddAttachment($_FILES['tmp_name']); //****HERE'S MY MAIN PROBLEM!!!
$mail->SetFrom('cinicraftmatt@gmail.com', 'CiniCraft.com'); // FROM
$mail->AddReplyTo('cinicraftmatt@gmail.com', 'Dom'); // Reply TO
$mail->AddAddress($recipiant, 'Dominik Andrzejczuk'); // recipient email
$mail->Subject = "First SMTP Message"; // email subject
$mail->Body = $message;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
?>
因此,据我所知,PHPMailer 的 AddAttachment() 方法将您要附加的文件 DIRECTORY 的 URL 作为参数。这就是我的主要问题所在。
变量的名称是什么,它将获取我上传的文件 (dir/upload.jpg) 的位置,以便我可以将其用作 AddAttachment() 方法中的参数?