PHPMailerで生成された電子メールを でSMTPに直接送信するのではなく、データベースに保存する方法を探しています。 これは、顧客が提供するメールサーバー経由でメールが送信されているため、信頼性が低いためです。だからこそ私は直接メールを送信するのではなく、データベースにメールをキューイングしたいのです。PHPMailer store finished mail
明白なアイデアは、PHPMailersの内部$ MIMEHeader、$ MIMEBodyおよび類似の変数を格納し、その後それらをPHPMailerオブジェクトに戻すことです。 これらの変数のほとんどは、他にアクセスすることなくプロテクトアクセス修飾子が設定されているため、これは実際には不可能です。
アクセス修飾子を公開に変更するためにReflectionのようなことをすると思っていましたが、それは破損しやすい粗いハックのように聞こえます。 また、PHPMailer自体を変更する必要はありませんPHPMailerを更新することができます。
PHPMailerオブジェクト全体をシリアライズするのはもう一つのアイデアでしたが、メールを送信するときにファイルシステム内の添付ファイルが残っているかどうかを確認する必要があるため、少し実用的ではありません。
ほとんどのリソースオーバーヘッドでもっとも簡単です....メール全体を保存するのではなく、PHPMailerで使用される変数をDBに保存してください。 – Kitson88