web-dev-qa-db-ja.com

PHPMailer AddAddress()

AddAddress PHPMailer関数のデータのフォーマット方法がわかりません。メールを複数の受信者に送信する必要があるため、試しました

$to = "[email protected],[email protected],[email protected]";
$obj->AddAddress($to);

しかし、成功しませんでした。任意の助けをいただければ幸いです。

33
kmunky

送信する電子メールアドレスごとにAddAddress関数を1回呼び出す必要があります。この関数には2つの引数しかありません:recipient_email_addressおよびrecipient_name。受信者名はオプションであり、存在しない場合は使用されません。

$mailer->AddAddress('[email protected]', 'First Name');
$mailer->AddAddress('[email protected]', 'Second Name');
$mailer->AddAddress('[email protected]', 'Third Name');

配列を使用して受信者を保存し、forループを使用できます。役に立てば幸いです。

67
doamnaT

すべての受信者に対してAddAddressメソッドを1回呼び出す必要があります。そのようです:

$mail->AddAddress('[email protected]', 'Person One');
$mail->AddAddress('[email protected]', 'Person Two');
// ..

物事を簡単にするために、配列をループしてこれを行う必要があります。

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

さらに良いことに、それらをCarbon Copyの受信者として追加します。

$mail->AddCC('[email protected]', 'Person One');
$mail->AddCC('[email protected]', 'Person Two');
// ..

物事を簡単にするために、配列をループしてこれを行う必要があります。

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}
10
Lead Developer

ここでその情報を使用して、上記のいくつかの素晴らしい答えは、同じ問題を解決するために私が今日やったことです:

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}
4
Purple Tentacle
foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}
3
user2720626

すべての答えは素晴らしいです。複数のアドレスを追加するユースケースの例を次に示します。Webフォームで必要に応じて必要な数のメールを追加する機能:

jsfiddleの実際の動作を参照してください (phpプロセッサを除く)

### Send unlimited email with a web form
# Form for continuously adding e-mails:
<button type="button" onclick="emailNext();">Click to Add Another Email.</button>
<div id="addEmail"></div>
<button type="submit">Send All Emails</button>
# Script function:
<script>
function emailNext() {
    var nextEmail, inside_where;
    nextEmail = document.createElement('input');
    nextEmail.type = 'text';
    nextEmail.name = 'emails[]';
    nextEmail.className = 'class_for_styling';
    nextEmail.style.display = 'block';
    nextEmail.placeholder  = 'Enter E-mail Here';
    inside_where = document.getElementById('addEmail');
    inside_where.appendChild(nextEmail);
    return false;
}
</script>
# PHP Data Processor:
<?php
// ...
// Add the rest of your $mailer here...
if ($_POST[emails]){
    foreach ($_POST[emails] AS $postEmail){
        if ($postEmail){$mailer->AddAddress($postEmail);}
    }
} 
?>

したがって、基本的には、クリックするたびに「emails []」という名前の新しい入力テキストボックスが生成されます。

最後に追加された[]は、投稿時に配列になります。

次に、PHP sideに「foreach」を追加して配列の各要素を調べます。

    $mailer->AddAddress($postEmail);
0
Tarik