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").