早上全部
我正在将一个简单的CV文件上传表单功能添加到我不久前建立的登录页面中。我想要这样,以便在提交表单时,将内容(包括上载的文件)(任何格式)以电子邮件的形式发送到选定的电子邮件地址。就目前而言,我已经下载了composer并用它来安装PHPMailer。我在项目的根目录中有composer.lock,composer.json(具有require phpmailer代码块)和composer.phar文件。
到目前为止,当我提交上传表单时,我得到一个空白页。我什至没有收到回声“错误”,我要求它向我显示发送邮件是否存在问题。应该发生的是填写表格,上传并提交文件。然后,将出现一个感谢页面,感谢用户上传他们的简历,当然,电子邮件将显示在收件箱中,其中包含所有信息和附件。
这是上传表单的代码-
<section id="upload">
<div>
<h2>Upload your CV:</h2>
</div>
<div id="uploadText">
<form action="toemail.php" method="POST" id="uploadform" enctype="multipart/form-data">
<label for="name" id="labelName">Name:</label> <br>
<input type="text" name="fullName" id="name" required>
<select id="typeofjob" name="jobpreference" required>
<option value="choose" selected disabled>--Choose Area of Expertise--</option>
<option value="Front of house">Front of House</option>
<option value="Back of house">Back of House</option>
</select>
<input type="file" id="filetoupload" name="file" required>
<button type="submit" name="upload_button" id="uploadbtn">Upload CV</button>
</form>
</div>
</section>
,这是我的php代码。这是我第一次使用phpmailer,所以可能是我忽略的东西。预先感谢您的帮助。
<?php
// using Composer to dounwload PHP Mailer and PHP Mailer to attach the uploaded file to a sent email
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
if(isset($_POST['upload_button'])){
require 'phpmailer/phpmailerAutoload.php';
require 'vendor/autoload.php';
$mail = new PHPMailer();
$name = $_POST['fullName'];
$preference = $_POST['jobpreference'];
$filename = $_FILES['file']['name'];
$file = $_FILES['file']['tmp_name'];
// $destination = 'uploads/'. $filename;
// $extension = pathinfo($filename,PATHINFO_EXTENSION);
// $size = $_FILES['file']['size'];
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com'; // Your Domain Name
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->Username = "____@gmaill.com"; // Your Email ID
$mail->Password = "___"; // Password of your email id
$mail->setFrom = "noreply@yourdomain.com";
$mail->FromName = "___";
$mail->AddAddress ("___"); // On which email id you want to get the message
$mail->addAttachment($file,$filename); //This line Use to Keep User Txt,Doc,pdf file ,attachment
$mail->IsHTML(true);
$mail->Subject = "Uploaded CV by $name"; // This is your subject
// HTML Message Starts here
$mail->Body = "
<html>
<body>
<table style='width:600px;'>
<tbody>
<tr>
<td style='width:150px'><strong>Name: </strong></td>
<td style='width:400px'>$name</td>
</tr>
<tr>
<td style='width:150px'><strong>Email ID: </strong></td>
<td style='width:400px'>$preference</td>
</tr>
</tbody>
</table>
</body>
</html>
";
// HTML Message Ends here
if(!$mail->send())
{
echo "Error";
}
else
{
header('location:thanksforcv.html');
}
}
?>
感谢您的帮助。
答案 0 :(得分:0)
空白页通常意味着致命的PHP错误,因此您应检查Web服务器的错误日志以获取更多详细信息。您最有可能在此行上遇到问题:
require 'phpmailer/phpmailerAutoload.php';
该文件在最近3年中没有出现在PHPMailer中,因此将导致致命错误;这可能是由于从此处复制并粘贴旧代码到Stack Overflow上的结果。如果您对代码是否正确存有疑问,请始终直接从the source获得建议。