Home  >  Article  >  Backend Development  >  用phpmailer类发送邮件的相关有关问题

用phpmailer类发送邮件的相关有关问题

WBOY
WBOYOriginal
2016-06-13 13:44:22885browse

用phpmailer类发送邮件的相关问题。
[size=12px]在phpmailer类中有一个CreateBody()方法,[/size]
代码如下:
 /**
  * Assembles the message body. Returns an empty string on failure.
  * @access public
  * @return string The assembled message body
  */
  public function CreateBody() {
  $body = '';

  if ($this->sign_key_file) {
  $body .= $this->GetMailMIME();
  }

  $this->SetWordWrap();

  switch($this->message_type) {
  case 'alt':
  $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', '');
  $body .= $this->EncodeString($this->AltBody, $this->Encoding);
  $body .= $this->LE.$this->LE;
  $body .= $this->GetBoundary($this->boundary[1], '', 'text/html', '');
  $body .= $this->EncodeString($this->Body, $this->Encoding);
  $body .= $this->LE.$this->LE;
  $body .= $this->EndBoundary($this->boundary[1]);
  break;
  case 'plain':
  $body .= $this->EncodeString($this->Body, $this->Encoding);
  break;
  case 'attachments':
  $body .= $this->GetBoundary($this->boundary[1], '', '', '');
  $body .= $this->EncodeString($this->Body, $this->Encoding);
  $body .= $this->LE;
  $body .= $this->AttachAll();
  break;
  case 'alt_attachments':
  $body .= sprintf("--%s%s", $this->boundary[1], $this->LE);
  $body .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE);
  $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body
  $body .= $this->EncodeString($this->AltBody, $this->Encoding);
  $body .= $this->LE.$this->LE;
  $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body
  $body .= $this->EncodeString($this->Body, $this->Encoding);
  $body .= $this->LE.$this->LE;
  $body .= $this->EndBoundary($this->boundary[2]);
  $body .= $this->AttachAll();
  break;
  }

  if ($this->IsError()) {
  $body = '';
  } elseif ($this->sign_key_file) {
  try {
  $file = tempnam('', 'mail');
  file_put_contents($file, $body); //TODO check this worked
  $signed = tempnam("", "signed");
  if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) {
  @unlink($file);
  @unlink($signed);
  $body = file_get_contents($signed);
  } else {
  @unlink($file);
  @unlink($signed);
  throw new phpmailerException($this->Lang("signing").openssl_error_string());
  }
  } catch (phpmailerException $e) {
  $body = '';
  if ($this->exceptions) {
  throw $e;
  }
  }
  }

  return $body;
  }


问题:
已经从后台传参过来option数组对象,需要在发送文件的body中设置以一定的格式显示option数组对象的内容,请问如何设置????

------解决方案--------------------

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn