2009-09-01 15 views
22

PEARメールシステムを使用して認証済みメールを送信しています。私はPEARメールを使用する前にalinks.Itが正常に動作していたHTMLメールを送信する必要があります。 HTMLメール。PEARメールを使用してhtmlメールを送信する方法

メール本文が次のようになります。あなたはこの例に従えば、それはこの問題を解決する方法をmail.Anyのアイデアであるよう

$body = <<<EOD 

Hiya $username 

You might be interested in the current 'haves' and 'wants' on example.com 

Latest Haves 
<a href="http://www.exmaple.com/product/have/64/Titan+Fast+Track+SunGlass">Titan Fast Track SunGlass</a> 

EOD; 

タグが表示されます?PLSのに役立つ..

+0

Mail_mimeパッケージを見てください。これは電子メールのHTML版と平文版の両方を含むことができます: http://pear.php.net/manual/en/package.mail.mail-mime.example.php –

答えて

28

がありますなしそれが動作してはならない理由:

<? 
     include('Mail.php'); 
     include('Mail/mime.php'); 

     // Constructing the email 
     $sender = "Leigh <[email protected]_spam.net>";        // Your name and email address 
     $recipient = "Leigh <[email protected]_spam.net>";       // The Recipients name and email address 
     $subject = "Test Email";           // Subject for the email 
     $text = 'This is a text message.';         // Text version of the email 
     $html = '<html><body><p>This is a html message</p></body></html>'; // HTML version of the email 
     $crlf = "\n"; 
     $headers = array(
         'From'   => $sender, 
         'Return-Path' => $sender, 
         'Subject'  => $subject 
         ); 

     // Creating the Mime message 
     $mime = new Mail_mime($crlf); 

     // Setting the body of the email 
     $mime->setTXTBody($text); 
     $mime->setHTMLBody($html); 

     $body = $mime->get(); 
     $headers = $mime->headers($headers); 

     // Sending the email 
     $mail =& Mail::factory('mail'); 
     $mail->send($recipient, $headers, $body); 
?> 

NOTE 1は、梨メールを必要とする上記の例では、動作するためにはMimeパッケージに加えて、Pear Mailの1つ。パッケージはhttps://pear.php.net/package/Mail_Mime/downloadになります。

+0

今すぐ添付ファイルとして電子メールを送信してください。 –

+1

SMTPサーバーの設定はどうですか?そのためのリンクはありますか? –

+1

こんにちは、私はhttps://pear.php.net/manual/en/package.mail.mail.send.phpを読んでいます。 '$ headers'に' To'があります。 'send()'メソッドと '$ headers'変数の受信者の電子メールの' $ recipient'の違いは何ですか? '$ヘッダ 'に' To'を入れる必要がありますか? – stenlytw

3

karim79によって掲示された例には、大きな悲しみを引き起こす可能性があるヘッダーパラメーターがあります。 "Return-Path" - このパラメーターを例のように含めたとき、電子メールアドレスが働いた。

具体的には、SMTPサーバにこれを送信しようとしたので、名前から周りの追加の余分な角括弧があった(私は何が起こっているかを確認するデバッグのparam追加したとき):から

:名前<名から<を@ domain.comから> >または
: "名前から" <私は引用符を使用してみました[email protected] > > <。
これにより、smtp接続が無効なアドレスのエラーで終了しました。

また、mime_mailクラスを使用する場合は、ヘッダに「To:」パラメータを指定する必要があります。そうでない場合は、受信時に非公開アドレスに送信されるように見えます。 Return PathのパラメータをToのパラメータに置き換えると、それが動作します。

12

ヘッダーはどのように見えますか?ここに私のものがあります:

$headers = array(
    'To' => $recipients, 
    'From' => $adminEmail, 
    'Subject' => $subject, 
    'MIME-Version' => 1, 
    'Content-type' => 'text/html;charset=iso-8859-1' 
); 
+2

このコードはすばらしく簡単です。ありがとう@story – aya

+2

これは余分なライブラリを探しに行くことなく華麗に動作します –

+1

追加libなしで動作します! – Mazz

関連する問題