ホームページ  >  記事  >  バックエンド開発  >  phpmailer クラスを使用したメール送信に関する問題

phpmailer クラスを使用したメール送信に関する問題

WBOY
WBOYオリジナル
2016-06-13 13:44:22885ブラウズ

[size=12px] phpmailer クラスには CreateBody() メソッドがあり、[/size]
代次のように:
/**
* メッセージ本文を組み立てます。 失敗した場合は空の文字列を返します。
* @access public
* @return string 組み立てられたメッセージ本文
 */
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 '添付ファイル':
$body .= $this->GetBoundary($this->gt;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("コンテンツ タイプ: %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; // テキスト本文を作成します
$body .= $this->EncodeString($this->>AltBody, $this->Encoding);
$body .= $this->LE.$this ->LE;
$body .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') 。 $this->LE; // HTML の本文を作成します
$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) {
{
$file = tempnam('', 'mail');
file_put_contents($file, $body); を試してください。 //TODO 動作を確認します
$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( "署名").openssl_error_string());
}
} catch (phpmailerException $e) {
$body = '';
if ($this->Exceptions) {
throw $e;
}
}
}

return $body;
}


问题:
已经从后台传参过来オプション数組オブジェクト、送信ファイルの本文にオプション数組オブジェクトの内容を表示する一定の形式で配置する必要があります。请问 どのように配置しますか???

------解決方法--- -----------------
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。