【发布时间】:2015-05-05 02:56:23
【问题描述】:
我正在使用以下 PHP 代码,该代码从 HTML 表单中获取值并以 HTML 格式发送电子邮件。这对我来说很好。
现在我需要添加一个附件字段,它将附件与电子邮件一起发送(无论是否将文件存储在服务器上)。有人可以建议如何使用或不使用 PHPmailer 吗?
谢谢!
<?php
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['address'])) {
die('Error: Missing variables');
}
$name=$_POST['name'];
$mobile=$_POST['mobile'];
$position=$_POST['position'];
$email=$_POST['email'];
$message=$_POST['message'];
$ip=$_SERVER['REMOTE_ADDR'];
$to="email@server.com";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers = 'From: '.$_POST['name'].' <'.$_POST['email'].'>';
'X-Mailer: PHP/' . phpversion();
$subject='Job Application from '.$name."\n\n\n";
$body.='Name: <b>'.$name."</b><br>\n";
$body.='Mobile No: <b>'.$mobile."</b><br>\n";
$body.='Position: <b>'.$position."</b><br>\n";
$body.='Email: <b>'.$email."</b><br>\n";
$body.='Message: <b>'.$message."</b><br>\n";
$body.='IP address of the submitter: '."\n".$ip."\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$email."\r\n";
if(mail($to, $subject, $body, $headers)) {
header("Location: thank-you.html");
} else {
echo "Something has gone wrong! Please try again!";
}
?>
【问题讨论】:
-
这段代码有漏洞,容易受到攻击。您应该从随 PHPMailer 提供的this example 开始,它完全符合您的要求。
-
感谢 Synchro,我试过了,但没有用。它说——邮件程序错误:无法实例化邮件功能。有什么想法吗?
-
阅读the troubleshooting guide。这意味着您没有本地邮件服务器或您的 PHP 配置错误。您可以切换到 SMTP,请参阅其他示例。
-
感谢 Synchro... 但是我已经放弃了 phpmailer,它对于一个附加该死文件的小功能来说太复杂了。他们不是上传和发送电子邮件附件的东方方式吗?
-
这确实是极简、琐碎的代码,也很清晰、安全且经过测试,但以这样的态度你不太可能得到太多帮助或同情。