私はs2memberデータベースからユーザーの電話番号を引き出し、電子メール(swiftmailer)でSMSテキストを送信するために必要な無線通信事業者ドメイン名を追加します。だから、(だけで追加するための正しいドメインとユーザーの無線キャリアを置き換えるの下に関数「cellmap」)以下、私が使用したメールアドレスの配列を作成します。Swiftmailerが配列で提出された場合にのみ有効なメールアドレスを拒否する
$matches = array();
if (is_array ($users) && count ($users) > 0) {
foreach ($users as $user) {
$user = new WP_User ($user->ID);
$matches[] = "'" . get_user_field("cell_no", $user->ID) . cellmap(get_user_field("cell_carrier",$user->ID)) . "'";
}
}
結果の配列がために、このようになります4人のマッチしたユーザーの例:(
$cell_list = implode(", ", $matches);
この、その結果の数字を:
Array
(
[0] => '[email protected]'
[1] => '[email protected]'
[2] => '[email protected]'
[3] => '[email protected]'
)
は、それから私は、ではSwiftMailerのために、「へ」のフィールドとして使用する文字列を作成するために、内破
'[email protected]', '[email protected]', '[email protected]', '[email protected]'
は今、私はそうのようにではSwiftMailerすることを渡します:)まで行われ
$outgoing_message = Swift_Message::newInstance('')
->setFrom(array('[email protected]' => 'Mydomain'))
->setTo($cell_list)
->setBody($message);
// Send the message
$result = $mailer->send($outgoing_message);
そして、私はこのエラーを取得する(それらが作られている、電話番号を無視しますが、右に対応実際にもの):
PHP Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given ['[email protected]', '[email protected]', '[email protected]', '[email protected]'] does not comply with RFC 2822, 3.6.2.'
私は成功し、個別にではSwiftMailerを経由して、これらの電子メールのいずれかを送信することができますが、彼らは、配列として表示されたとき、私は常に目を取得しますe上記エラー。私は個々のアドレスと結果の文字列全体にトリムを適用しようとしました。配列のprint_rには印刷できない文字は表示されません。私は - > setTo($ cell_list)、 - > setTo(array( '$ cell_list'))と何か他のものがうまく動作しない、さまざまな組み合わせを試みました。私は、リスト内のセミコロンでカンマを置き換えようとしました。各アドレスの一重引用符を削除しました。私が言うことができる限り、電子メールアドレスの文字列はswiftmailerの文書に示されている形式とまったく同じですが、私の人生にとってはわかりません。
ありがとうございました!
EDIT:エラーメッセージには、.com部分には黒色のフォント色が残り、残りは赤色になっています。それはここに表示されているのか、ちょっと変わったものなのでしょうか?
方法について - > setTo($のcell_list);? – jonju
jonju - whoops、これはtypoですが、本番システムでは$ cell_listを呼び出していました。残りのテキストを編集して一致させます。 – user1596165
を見てくださいhttps://github.com/swiftmailer/swiftmailer/issues/382 – jonju