Php 通过电子邮件发送附件
我从未接触过PHP,但负责修复实习生的代码 我正在尝试将上载的文件附加到我正在发送的电子邮件中。电子邮件发送,但没有文件。我正在使用PHPMailerAutoUpload.php(在GitHub上找到) 这是我正在使用的代码 附件通过Php 通过电子邮件发送附件,php,email,phpmailer,Php,Email,Phpmailer,我从未接触过PHP,但负责修复实习生的代码 我正在尝试将上载的文件附加到我正在发送的电子邮件中。电子邮件发送,但没有文件。我正在使用PHPMailerAutoUpload.php(在GitHub上找到) 这是我正在使用的代码 附件通过move\u上传的\u文件保存 move_uploaded_file( $resume['tmp_name'] , $up_dir .basename( $random_var . '_wse_' . $resume['name'] ) ) 注意:我已经注释掉了m
move\u上传的\u文件保存
move_uploaded_file( $resume['tmp_name'] , $up_dir .basename( $random_var . '_wse_' . $resume['name'] ) )
注意:我已经注释掉了move\u uploaded\u file
功能,以确保我没有删除附件
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = false;
$mail->Host = 'oursmtp';
$mail->Port = 25;
$mail->setFrom( $_POST['E-mail'] , $_POST['first_name'] . " " . $_POST['last_name'] );
$mail->addAddress( 'test@test.com' );
$mail->Subject = "Test" . @date('M/D/Y');
$mail->msgHTML($msgDoc);
if (isset($_FILES['uploaded_file']) &&
$_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
$_FILES['uploaded_file']['name']);
}
if (!$mail->send()) {
$mailError = $mail->ErrorInfo;
$outcomeArr = array(
'outcome'=>'failure',
'message'=>'Error' . $mailError
);
echo json_encode( $outcomeArr );
exit();
} else {
// success
$outcomeArr = array(
'outcome'=>'success',
'message'=>'Thank you'
);
echo json_encode( $outcomeArr );
}
据我所知,$\u FILES
是PHP中上传文件的临时存储。使用此代码,电子邮件将发送,但不带附件(仅指向上载文件位置的链接)
我尝试了以下内容,但对我不起作用。你的实习生显然是一名摇滚明星,不需要检查或指出错误情况,即使没有附件或上传过程中出现错误,邮件也会发送。将这些位更改为代码,告诉您文件未附加的原因:
if (isset($_FILES['uploaded_file']) && $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
if( ! $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'], $_FILES['uploaded_file']['name']) ) {
echo 'Error adding attachment: ' . $mail->ErrorInfo;
}
} else if( !isset($_FILES['uploaded_file']) ) {
echo 'No uploaded file found';
} else {
echo 'Uploaded file error: ' . $_FILES['uploaded_file']['error'];
}
好的-现在我看到它说
没有找到上传的文件
。。嗯,真奇怪。当我使用move\u upload\u file()
方法时,它是有效的,因此应该有一个文件。应该注意的是$\u FILES['upload\u file']
中的upload\u file
位不是一个静态值,它是上传表单中文件输入字段的名称。在原始的未更改脚本中,$resume
是如何定义的?应该具有正确的字段名/数组索引。它的定义类似于Foreach($\u FILES as$resume):
这是。。。有趣var\u dump($\u文件)
应该告诉您应该使用什么数组索引。将$\u文件['upload\u file']
替换为$\u文件['resume']