[英]PHP Email From Supplied Address
我有这个PHP脚本,我没有很多经验,但是我提供了一封电子邮件,我希望使用该电子邮件地址发送该电子邮件,现在它使用了我的虚拟主机帐户的电子邮件地址...我需要更改什么?
<?PHP
$ai_to = urldecode($_GET['to']);
$ai_from = urldecode($_GET['fr']);
$ai_su = urldecode($_GET['su']);
$ai_bo = str_replace("CRLF","\n", urldecode($_GET['bo']));
$ai_fname = urldecode($_GET['fi']);
$ai_fpath = $ai_fname;
$header = "From: " . 'aiapis mail svc:' . " <" . $ai_from . ">\r\n";
$header .= "Reply-To: " . $ai_from . "\r\n";
if ($ai_fname != '')
{
$data = file_get_contents('php://input');
if (file_put_contents($ai_fpath, $data) === FALSE) die("Upload failed, sen cancelled.");
$file_size = filesize($ai_fpath);
if ($file_size > 10485760) die("> 10MB. Send cancelled.");
$emtemp = 'emailtemp.log';
$current = file_get_contents($emtemp);
$current .= gmdate("Y-m-d\TH:i:s") . ", " . $ai_fname . ", " . round($file_size/1048576, 3) . "MB\n";
file_put_contents($emtemp, $current);
$handle = fopen($ai_fpath, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $ai_bo."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$ai_fname."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$ai_fname."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
$sent = mail($ai_to, $ai_su, "", $header);
}
else $sent = mail($ai_to, $ai_su, $ai_bo, $header);
if ($sent)
{
if ($ai_fname != '')
{
unlink($ai_fpath);
echo "Email+attachment sent.";
}
else echo "Email sent.";
}
else echo "Mail server rejected email.";
?>
邮件的发件人设置在以下行:
$header = "From: " . 'aiapis mail svc:' . " <" . $ai_from . ">\r\n";
变量$ai_from
是从名为“ fr
”的$ _GET变量中设置的(它来自这样的URL: http://www.google.com?fr=myemail@domain.net&to=touraddress@domain2.net
: http://www.google.com?fr=myemail@domain.net&to=touraddress@domain2.net
fr
$ai_from
)
这个脚本过去曾经有用吗?
如果您不熟悉(30岁以上)电子邮件RFC,请不要使用PHP邮件功能 。
请改用库。
这两个很流行: Swift Mailer和PHPMailer 。 我更喜欢Swift Mailer,但都成功使用了两者。 过去,我也使用过mail()
,因为我在mail()
有多年的经验(使用Delphi和其他语言,所以我知道这些怪癖)。
如果您仍然想使用mail(),请注意,如果在某些情况下使用不正确,则无论是否有退信,您的电子邮件都无法发送(因此您可能不知道它失败了)。 此外,有时使用mail()
发送的mail()
更倾向于传递到垃圾邮件文件夹。
请参阅此示例,并使用PHP中的简单方法正确发送邮件。
顺便说一句,我不隶属于他们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.