5

以下のphpコードを使用して、1つのアドレスとbccの2つの他のアドレスに電子メールを送信します。受信者には問題なく送信されますが、2 つの bcc アドレスのいずれかにしか送信できません。(私が試したことについては、コード内のコメントを参照してください)

奇妙なことに、$result は 3 として返されるため、2 番目の bcc メールを送信しようとしているように見えますが、送信されません。

<?php


    $tracker='tracking@pnrbuilder.com';
    $subject = $_POST['subject'];
    $sender = $_POST['sender'];
    $toEmail=$_POST['toEmail'];
    $passedInEmail=stripslashes($_POST['message']);
    $passedInEmail=preg_replace('/&nbsp;/',' ',$passedInEmail);

    require_once('swiftLib/simple_html_dom.php');
    require_once('swiftLib/swift_required.php');
    $transport = Swift_MailTransport::newInstance();
    $mailer = Swift_Mailer::newInstance($transport);
    // Create the message
    $message = Swift_Message::newInstance();
    //turn the meesage into an object using simple_html_dom
    //so we can iterate through and embed each image
    $content = str_get_html($passedInEmail);

    // Retrieve all img src tags and replace them with embedded images
    foreach($content->find('img') as $e) 
        {
            if($e->src != "") 
                {
                    $value = $e->src;
                    $newValue = $message->embed(Swift_Image::fromPath($value)); 
                    $e->src = $newValue;
                }
        }

    $message->setSubject($subject);
    $message->setFrom($sender);
    $message->setTo($toEmail);



    //this is my problem
    $message->setBcc(array('tracking@pnrbuilder.com',$sender));
    //as it is above only "sender" gets the email

    //if I change it like this:

    //$message->setBcc($tracker,$sender);
    //only "tracker" gets the email


    //same if I change it like this:
    //$message->setBcc($sender);
//$message->addBcc($tracker);

    $message->setReplyTo(array('flights@pnrbuilder.com'));
    $message->setBody($content,'text/html');


    $result = $mailer->send($message);
    if ($result=3) {
        echo 'Email Sent!';
    } 
    else {
       echo 'Error!';
    }
?>

これを行う適切な方法は何ですか?

4

2 に答える 2

8

ここでSwiftmailerのチュートリアルを見つけることができます

例:

$message->setBcc(array(array('some@address.tld' => 'The Name'),array('another@address.tld' => 'Another Name')));

電子メール アドレスの名前を設定してみて、違いが生じるかどうかを確認してください。

于 2013-10-02T16:47:26.023 に答える
1

これはサーバー側の問題になりました。私はホスティング プロバイダー (GoDaddy) に連絡し、問題を修正するためにいくつかの変更を加えることができました。助けようとしてくれたすべての人に感謝します!

于 2013-10-05T05:36:37.253 に答える