2016-08-03 6 views
3

私のサイトのさまざまな部分で使用できる電子メールを送信する機能を開発しようとしています。電子メールをSMTP認証にしたいので、私はPearを使っています。Pear Mailを使用してプレーンテキストとHTML電子メールを送信する(Content Typeの設定方法と境界の適切な設定方法)

電子メールは、プレーンテキスト、HTML、またはその両方(マルチパート/代替)として送信するかどう私の関数のパラメータを決定するために設定されている....

if($set_content_type == 'text'){ 
     $content_type = 'text/plain'; 
    } elseif($set_content_type == 'html'){ 
     $content_type = 'text/html'; 
    } elseif($set_content_type == 'html_and_text'){ 
     $boundary = uniqid(); 
     $content_type = 'multipart/alternative; boundary=' . $boundary; 
    } 

私はその後、送信するためにMail_mimeを使用メール...

$mime = new Mail_mime(); 
    $mime->setHTMLBody($html); 
    $mime->setTXTBody($text); 
    $body = $mime->get(); 

    $host = "myhost"; 
    $port = "25"; // 8025, 587 and 25 can also be used. 

    $username = "myusername"; 
    $password = "mypassword"; 

    $headers = array (
     'From' => $from, 
     'To' => $to, 
     'Subject' => $subject, 
     'Content-Type:' => $content_type); 

    $headers = $mime->headers($headers); 
    $smtp = Mail::factory('smtp', 
    array ('host' => $host, 
     'port' => $port, 
     'auth' => true, 
     'username' => $username, 
     'password' => $password)); 

    $mail = $smtp->send($to, $headers, $body); 

は私の質問/問題:このコードでは、私は代替/マルチパートMIMEタイプを遵守し、適切にこの答えに示しているもののような境界を使用するメッセージの一部を設定することができますDifferent Content Types in email )?あなたは$のMIMEオブジェクトに

$mime = new Mail_mime(); 
$mime->setHTMLBody($html); 
$mime->setTXTBody($text); 
$mime->setContentType($content_type); 
$body = $mime->get(); 

をContentTypeを設定する必要が

+0

https://pear.php.net/package/Mail_Mime/docs/1.10.0/Mail_Mime/Mail_mime.html#methodsetContentType –

+0

@MarcB後の外観を持つことができます:私は梨を使用しようと本当に新しいです電子メールを送信する。私のコードに 'setContentType()'関数を組み込むことができますか? – gtilflm

答えて

1

は今、私はあなたが梨から来るものよりも別のメーラーを使用することをお勧めします。 Pearは古いパケットマネージャーで、PHPUnitやSymfonyのようにサポートしていないアプリケーションです。

コンポーザを使用してインストールできる別のものを使用する方が良いです。あなたはSwiftmailer

関連する問題