9

Plain/HTML マルチパート メールを送信しようとしていますが、現在 PHP の mail() 関数を使用しています。多くの人が PHPMailer を推奨しているので、試してみようと思いました。

しかし、すべてが今日のように見えるため、非常に複雑に見えます。私はそれをダウンロードし、それをインストールし、MySQL 接続と SMTP 接続を構成することについて話しています!? 私がやりたいことは、MIME メールを作成して送信する素敵なクラスを使用することだけです! SMTP の可能性は理解できますが、すべてが非常に複雑に思えます。

たとえば、phpファイルを含めて(サーバーのインストールやPHPの再コンパイルは不要です!)、クラスを使用してメールを作成して送信するなど、単純に使用する方法はありますか?

どなたか簡単に教えていただけるとありがたいです!私はそれが可能であると確信しており、何時間にもわたって検索した後、それについての本当に良い、簡単な記事がオンラインにないことが信じられません. 必要がないことを知っていると、すべてが複雑すぎます。

4

3 に答える 3

8

(このリンクから)きれいな方法で、最初にPHPMailerを拡張し、サイトのデフォルトを設定します:

require("class.phpmailer.php");

class my_phpmailer extends phpmailer {
    // Set default variables for all new objects
    var $From     = "from@example.com";
    var $FromName = "Mailer";
    var $Host     = "smtp1.example.com;smtp2.example.com";
    var $Mailer   = "smtp";                         // Alternative to IsSMTP()
    var $WordWrap = 75;

    // Replace the default error_handler
    function error_handler($msg) {
        print("My Site Error");
        print("Description:");
        printf("%s", $msg);
        exit;
    }

    // Create an additional function
    function do_something($something) {
        // Place your new code here
    }
}

次に、必要に応じて上記のスクリプトを含め (この例では という名前ですmail.inc.php)、新しく作成したmy_phpmailerクラスをサイトのどこかで使用します。

require("mail.inc.php");//or the name of the first script

// Instantiate your new class
$mail = new my_phpmailer;

// Now you only need to add the necessary stuff
$mail->AddAddress("josh@example.com", "Josh Adams");
$mail->Subject = "Here is the subject";
$mail->Body    = "This is the message body";
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name

if(!$mail->Send())
{
   echo "There was an error sending the message";
   exit;
}

echo "Message was sent successfully";
于 2009-08-23T16:15:41.037 に答える
4

PHPMailer については何も知りませんが、 Zend_Mail を使用することをお勧めします。添付ファイル付きの簡単な例を次に示します。

$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->createAttachment($myImage,
                        'image/gif',
                        Zend_Mime::DISPOSITION_INLINE,
                        Zend_Mime::ENCODING_8BIT);
$mail->setFrom('somebody@example.com', 'Some Sender');
$mail->addTo('somebody_else@example.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send();

おそらく、必要なすべてのことを行います (添付ファイル、HTML、SMTP 構成など)。デフォルトではsendmailmail()関数のように を使用するため、必要がなければ SMTP などを構成する必要はありません。

また、非常に優れたドキュメントも用意されているため、例を見つけるのに苦労することはありません。

于 2009-08-23T16:08:52.050 に答える
0

代わりにSwiftMailerを試してください。

于 2009-08-23T15:57:18.000 に答える