次のようなラッパー クラスで SMTP で Zend_mail を使用しています。
//$_config has all required and valid attributes to send a mail successfully.
$tmpconfig = Array('auth' => 'login',
'username' => $this->_config->MAIL_LOGIN,
'password' => $this->_config->MAIL_PASSWORT);
$this->_transport = new Zend_Mail_Transport_Smtp($this->_config->MAIL_SMTP,$tmpconfig);
$this->_mail = new Zend_Mail();
$this->_mail->setFrom($this->_config->MAIL_ADDRESS, $this->_config->MAIL_SENDER_NAME);
...
//$_data has already all required and valid fields and values...
$this->_mail->setBodyText($this->_data['maildata']['BodyText'],'UTF-8','UTF-8');
$this->_mail->setSubject($this->_data['maildata']['Subject']);
$this->_mail->addTo($this->_data['maildata']['RecipientEmail'], $this->_data['maildata']['RecipientName']);
$this->_mail->send($this->_transport);
シナリオ 1: テスト アカウントを含むメールを、テスト システムのテスト メールアドレスにプロプライエタリ サーバーに送信しています。このメールが届きます。
シナリオ 2: 2 つのテスト システムを使用して、別のテスト アカウントを使用して、同じメールアドレスの別のプロプライエタリ サーバーにメールを送信しています。このメールはラットウェアとして拒否されます。すでにサーバー管理者と話しましたが、メールの生成が間違っているとのことでした。有効な EHLO グリーティングがありません: 「リモート ホストは HELO/EHLO グリーティングで私たちの名前を使用しました。」
zend_mail クラスの問題なのか、テスト システムの問題なのか、よくわかりません。
最初のテストシステム: PHP バージョン 5.3.2-1ubuntu4.14、Apache/2.2.14 (Ubuntu)
2 番目のテストシステム: PHP バージョン 5.3.1、Apache/2.2.14 (Unix) (Mac OS X 上の Apache)