PHP - PHPMailer - qmail-dk

クラウディア 
1. 概要
2. 調査
3. 解決

1. 概要

 これ、表題に迷ったのですがね。  本サイトでは、日替わりに処理を実行して、「PHPMailer」を使用して、自分向けに、その日のログを送るようにしています。  メールサーバに、「qmail」を使用しておりまして、「DKIM」ちゅうのに対応するために、「qmai-dk」ちゅうのを導入したんですがね。  そのあたりのいきさつは、「メンテナンス・トラブルシュート - メールサーバ - DKIM」をご参照ください。  「qmail-dk」を導入したその晩、日替わり処理で、「PHPMailer」がこけるようになったのです。  えらいこっちゃ。

2. 調査

 あれこれ調査しまして、とりあえず、前ページのように、デバッグする方法がわかりました。  現在の状態で、調査してみましたらば、送信時に

Sending with mail()
Sendmail path: /usr/sbin/sendmail -t -i
Envelope sender:
To: [伏字 メールアドレス]
Ysubject: =?UTF-8?B?6Kmm6aiT44Oh44O844Or?=
Headers: Date: Mon, 17 Jul 2023 17:40:21 +0900From: "[伏字 メールアドレス]" <[伏字 メールアドレス]>Message-ID: <s70Y4zxW6KWWTE9c0uOf0jOJwP6AkzKSfukXAuJrUw@freebsd.sing.ne.jp>X-Mailer: PHPMailer 6.4.0 (https://github.com/PHPMailer/PHPMailer)MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8
Result: false
Could not instantiate mail function.
 となっちょることがわかりました。  「 /usr/sbin/sendmail -t -i」で、メールを送っちょったのじゃね。  で、「Sendmail」じゃなくて「qmail」ぞな、ちゅうことで。

$mail->IsQmail();
 ちゅうメソッドがあって、それを使ってみたら

Sending with qmail
Sendmail path: /var/qmail/bin/qmail-inject
Sendmail command: /var/qmail/bin/qmail-inject -oi -t
Envelope sender:
Headers: Date: Mon, 17 Jul 2023 17:48:36 +0900To: [伏字 メールアドレス]From: "[伏字 メールアドレス]" <[伏字 メールアドレス]>Subject: =?UTF-8?B?6Kmm6aiT44Oh44O844Or?=Message-ID: <3ZVBcxpU4oCUds2ywo1350lM7rxMMIg8D8DPdcm6Y@freebsd.sing.ne.jp>X-Mailer: PHPMailer 6.4.0 (https://github.com/PHPMailer/PHPMailer)MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8
Result: false
Could not execute: /var/qmail/bin/qmail-inject
 わはは、「/var/qmail/bin/qmail-inject -oi -t」もだめなのね。

3. 解決

 試行錯誤、数時間の果てに、本サイトでは、下記の2行を追加することで、解決しました。

$mail->isSMTP();
$mail->Host = '[伏字 メールサーバアドレス]';
 「$mail->IsQmail()」じゃなくて「$mail->isSMTP()」ちゅうことなのね。  それと、これは、デバッグしてみてわかったのですが、「$mail->Host」で、メールサーバアドレスを設定していないと、ウェブサーバのアドレスを使おうとして、わけわかんないことになっていたようです。
earthcar(アースカー)