0

私はPayson支払いゲートウェイを使用しており、支払いが完了した後、ユーザーがありがとうページにリダイレクトされたときに、同じ2つの電子メールがユーザーに送信されます。この問題を解決するのを手伝ってください。コードは以下のとおりです。

$select="select * from #__content where id=12 and state=1";

$db->setQuery($select);
$result = $db->loadObject();

echo $result->introtext;
//echo $_REQUEST['id'];

$select = "select * from #__booking order by id desc";
$db->setQuery($select);
$db->query();
$id=$db->loadObject();

$insert_id=$id->id;
$printid=base64_encode($insert_id);

        $db=& JFactory::getDBO();
        $select_brand="select * from #__booking where id=".$id->id."";
        $db->setQuery($select_brand);
        $result = $db->loadObject();

        $db=& JFactory::getDBO();
        $select_brand="select * from #__brand where published=1 and id=".$result->brand."";
        $db->setQuery($select_brand);
        $result_brand = $db->loadObject();

        $select_model="select * from #__modno where published=1 and id=".$result->model."";
        $db->setQuery($select_model);
        $result_model = $db->loadObject();


        $printlink=JURI::root()."print.php?id=".$insert_id;
        $link="http://www.status.repair24.se/?id=".$insert_id;
        $phoneimagelink=JURI::root()."templates/mobile/images/phicon.png";
        $logolink=JURI::root()."templates/mobile/images/2.png";
        $to= $result->email;
        $subject = "Invoice Mail";
        $body.='<center><div style="width:100%;background-color:#f1f3f6;"><br>
                        <table bgcolor="#dde1e8" cellpadding="10" width="70%" style="border:1px solid #000;">
                            <tr><td>
                                <table bgcolor="white" align="center" cellpadding="5" cellspacing="5" width="100%" style="border:1px solid #000;">
                                <tr>
                                    <td>
                                        <table width="100%">
                                            <tr>
                                                <td align="left"><img src="'.$logolink.'" width="200"></td>
                                                <td align="right"><img src="'.$phoneimagelink.'"  style="margin:3px 5px -3px 0" alt="" border="0">123456789</td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Name : '.$result->name.'
                                    </td>
                                </tr>
                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Address: '.$result->address.'
                                    </td>
                                </tr>
                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Zip Code: '.$result->zip.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Mobile : '.$result->mobile.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Email : '.$result->email.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Brand : '.$result_brand->name.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Model: '.$result_model->name.'
                                    </td>
                                </tr>
                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Size '.$result->size.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Imei  : '.$result->imei.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Operator : '.$result->operator.'
                                    </td>
                                </tr>


                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Lock CODE : '.$result->lockcode.'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Error Descriptions : '.rtrim($result->repairs,',').'
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Price : '.$result->price.' SEK
                                    </td>
                                </tr>

                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        Repair Number : '.$result->num.'
                                    </td>
                                </tr>



                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        <a href='.$printlink.'>Click here </a>to print Your Booking Details.
                                    </td>
                                </tr>
                                <tr>
                                    <td style="font-size:12px;font-family:Arial;" align="left">
                                        <a href='.$link.'>Click here </a>to check status.
                                    </td>
                                </tr>




                            </table></td></tr></table><br><br></div></center>';


        // To send HTML mail, the Content-type header must be set
    $from = array("info@repair24.se", "Repair 24");
 // To send HTML mail, the Content-type header must be set
        # Invoke JMail Class
    $mailer = JFactory::getMailer();

    # Set sender array so that my name will show up neatly in your inbox
    $mailer->setSender($from);

    # Add a recipient -- this can be a single address (string) or an array of addresses
    $mailer->addRecipient($to);

    $mailer->setSubject($subject);
    $mailer->setBody($body);

    # If you would like to send as HTML, include this line; otherwise, leave it out
    $mailer->isHTML(1);

    # Send once you have set all of your options
    $ma=$mailer->send();
4

2 に答える 2

0

..私は(Joomla 2.5の)同様のコードで同じ問題に直面しています!

また、一部の電子メールアドレスは常にシングルとして受信され、他の電子メールアドレスは常にツインとして受信されることを付け加えておきます。コードが受信者に関連している場合、または送信者(この場合はSendMail)と受信者の両方に関連する質問が混在している場合は、コードが原因で問題がないように思われます。

提案や診断の兆候をありがとう。

幸運をお祈りしています、

カーマイン

..私は自分で解決しました、そしてここで私はそれが他の人を助けることができるように問題と解決策を置きます:

  • HTMLコンテンツを含む電子メールを送信するために、このコードがありました。

    $mailing_list = & JFactory::getMailer ();
    
    for ($i = 0; $i < count ($recipients_mailing_list); $i++) {
    
      if (substr_count ($recipients_mailing_list[$i], '@')) {
    
      $sent_ok = $mailing_list->sendMail ('info@my_domain', 'my_domain', $recipients_mailing_list[$i], $email_ref, htmlspecialchars_decode ($email_body), TRUE);
    
      }
    }
    

..そして、処理された新しい受信者が前の受信者も再度送信するように、送信を処理しました。つまり、3人の受信者がいる場合、最初の受信者は3回、2回目は2回受信し、最後の受信者だけが1つの電子メールを受信します。

次のように、宣言JFactory :: getMailer()をforループに移動して、「インスタンスの構築」を更新してクリーンアップするように解決しました。

    for ($i = 0; $i < count ($recipients_mailing_list); $i++) {

      if (substr_count ($recipients_mailing_list[$i], '@')) {

      $mailing_list = & JFactory::getMailer ();

      $sent_ok = $mailing_list->sendMail ('info@my_domain', 'my_domain', $recipients_mailing_list[$i], $email_ref, htmlspecialchars_decode ($email_body), TRUE);

      }
    }

コード側ではあまり効率的ではありませんが、問題なく動作します。

それを解決するためのより良い方法はありますか?

どんな提案にも感謝します。

幸運をお祈りしています、

カーマイン

于 2012-09-05T20:52:35.733 に答える
0

Joomla 2.5 メール機能は次のとおりです。

成功した場合に true を返すか、JError オブジェクトを返します。したがって、あなたの状態は以下のようになります。

$send =& $mailer->Send();

if ( $send !== true ) {

echo 'Error sending email: ' . $send->message;

} そうしないと {

echo 'Mail sent';

}

以下のリンクを使用して、joomla のドキュメントの詳細を確認します。 http://docs.joomla.org/Sending_email_from_extensions

このソリューションがうまくいくことを願っています。

于 2013-03-07T09:57:04.693 に答える