Heim  >  Artikel  >  Backend-Entwicklung  >  用phpmailer类发送邮件的相关有关问题

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

WBOY
WBOYOriginal
2016-06-13 10:12:11740Durchsuche

用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数组对象的内容,请问如何设置????

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn