multipart/mixed 电子邮件表单数据中 md5 的用途
Purpose of md5 in multipart/mixed e-mail form data
我想知道我发现 here and here 的以下 PHP 片段中 md5("sanwebe")
校验和的用途。
"sanwebe" 参数有什么作用?
if($file_attached) //continue if we have the file
{
$boundary = md5("sanwebe");
//header
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From:".$from_email."\r\n";
$headers .= "Reply-To: ".$email."" . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
//plain text
$body = "--$boundary\r\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($message_body));
//attachment
$body .= "--$boundary\r\n";
$body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
$body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
}else{
//proceed with PHP email.
$headers = "From:".$from_email."\r\n".
'Reply-To: '.$email.'' . "\n" .
'X-Mailer: PHP/' . phpversion();
$body = $message_body;
}
多部分 MIME 邮件中的不同部分必须有一种标记,以便收件人知道在哪里再次拆分这些部分。
这是通过使用 Content-Type 邮件 header 的边界参数定义任意标记来完成的。这个令牌没有太多要求,但一个是:我可能不会出现在邮件的其他任何地方。
在您显示的代码片段中使用 md5 函数只是使用 md5 函数生成一些可能不存在于消息中其他地方的标记。您也可以对 md5 使用任何其他参数,或者您可以只定义 $boundary 变量以包含任何其他随机字符串。
md5("sanwebe")
的结果被用作电子邮件中不同内容部分的边界。
为什么"sanwebe"?根本没有理由。您那里的片段可能发布在 sanwebe.com 上(快速 google 提出了一对),或者是从最初存在的片段中派生出来的。 "sanwebe" 没有什么特别之处,你也可以使用 md5("Whosebug")
.
我想知道我发现 here and here 的以下 PHP 片段中 md5("sanwebe")
校验和的用途。
"sanwebe" 参数有什么作用?
if($file_attached) //continue if we have the file
{
$boundary = md5("sanwebe");
//header
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From:".$from_email."\r\n";
$headers .= "Reply-To: ".$email."" . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
//plain text
$body = "--$boundary\r\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($message_body));
//attachment
$body .= "--$boundary\r\n";
$body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
$body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
}else{
//proceed with PHP email.
$headers = "From:".$from_email."\r\n".
'Reply-To: '.$email.'' . "\n" .
'X-Mailer: PHP/' . phpversion();
$body = $message_body;
}
多部分 MIME 邮件中的不同部分必须有一种标记,以便收件人知道在哪里再次拆分这些部分。 这是通过使用 Content-Type 邮件 header 的边界参数定义任意标记来完成的。这个令牌没有太多要求,但一个是:我可能不会出现在邮件的其他任何地方。
在您显示的代码片段中使用 md5 函数只是使用 md5 函数生成一些可能不存在于消息中其他地方的标记。您也可以对 md5 使用任何其他参数,或者您可以只定义 $boundary 变量以包含任何其他随机字符串。
md5("sanwebe")
的结果被用作电子邮件中不同内容部分的边界。
为什么"sanwebe"?根本没有理由。您那里的片段可能发布在 sanwebe.com 上(快速 google 提出了一对),或者是从最初存在的片段中派生出来的。 "sanwebe" 没有什么特别之处,你也可以使用 md5("Whosebug")
.