36

AddAddressPHPMailer関数のデータをどのようにフォーマットする必要があるのか​​わかりません。メールを複数の受信者に送信する必要があるので、試してみました

$to = "me@domain.com,you@domain.net,she@domain.it";
$obj->AddAddress($to);

しかし、成功しませんでした。どんな助けでもありがたいです。

4

5 に答える 5

78

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

$mailer->AddAddress('recipient1@domain.com', 'First Name');
$mailer->AddAddress('recipient2@domain.com', 'Second Name');
$mailer->AddAddress('recipient3@domain.com', 'Third Name');

配列を使用して受信者を格納してから、forループを使用できます。お役に立てば幸いです。

于 2009-11-20T14:55:39.513 に答える
11

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

$mail->AddAddress('person1@domain.com', 'Person One');
$mail->AddAddress('person2@domain.com', 'Person Two');
// ..

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

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

さらに良いことに、それらをカーボンコピーの受信者として追加します。

$mail->AddCC('person1@domain.com', 'Person One');
$mail->AddCC('person2@domain.com', 'Person Two');
// ..

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

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}
于 2014-06-19T10:25:20.530 に答える
6

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

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}
于 2016-02-07T23:20:06.147 に答える
3
foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}
于 2014-06-02T12:08:50.270 に答える
0

すべての答えは素晴らしいです。複数のアドレスを追加するユースケースの例を次に示します。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側で「foreach」を使用して配列の各要素を調べ、以下を追加します。

    $mailer->AddAddress($postEmail);
于 2017-03-28T15:40:55.840 に答える