使用jquery& amp; PHP

时间:2011-07-30 13:08:48

标签: php jquery ajax email

我正在编写一个脚本来发送批量电子邮件....

  1. 用户将从多选列表框中选择多个列表。
  2. 选择列表后,它开始向该列表中的所有电子邮件发送电子邮件,在一个列表中,电子邮件最多可达100,000个。

    <select name='lists' id='lists' multiple='multiple' class='multiselect' >
    <?php
    
    $sql="select list_id,list_name from tbl_list" ;
    $result=mysql_query($sql);
    for($i=1;$i<=mysql_num_rows($result);$i++)
    {
    $row=mysql_fetch_array($result);
    ?>
    <option  value='<?php echo $row['list_id']; ?>' title='<?php echo $row['list_name']; ?>'><?php echo $row['list_name']; ?></option>
     <?php
     }
     ?>           
      </select>
    

    现在选择列表后我跟随jquery:

    var listsValues = $("#lists").val()
    
    var n = 1;
    $.each(listsValues, function() {
         var data= {list_id:encodeURIComponent(listsValues[n-1])}; 
        setTimeout(function() {
                $.post('GeteTmails.php', data, function(resp) {
    
    
            //////// to bring 1000 emails at one me/////////////////
                        var Totalemails=resp;
                        var Totalsteps=Math.round(Totalemails/1000)+1;
                        for($i=1;$i<=Totalsteps;$i++)
                        {
                        start=($i-1)*1000;
                        limit=$i*1000;
    
    
                        $.ajax({
                       type: "POST",
                      url: "getemails.php",
                      cache:false,
                    data:"list_id="+ encodeURIComponent(listsValues[$i-1])+"&start="+start+"&limit="+limit,
                    dataType:'json',
                    success: function(json)
                    {
                     var foo = json.foo;
    
                             //////////// send emails ///////////////////////////
    
    
    
                             uemail = foo.split(',');
    
                             var interval;
                             var counter = 0;
                                var ecounter=1;
                                var check = function() { 
                                                        if(counter < uemail.length) {
                                                        $("#sending_count").html("Sending Message "+ ecounter +" of " + uemail.length);
                                var data = {email: uemail[counter], subj: email_subject,r_rec:r_rec,temp_id:temp_id,email_message:email_message,msgid:msgids[0]};
                                                             $.ajax({
                                                             async: false,
                                                             type: "POST",
                                                             url: "sendmails.php",
                                                             data:data ,
                                                             success: function(html){
                                                             $("<div>"+ html +"</div>").appendTo("div#meprocess");  
    
                                                             }
    
                                                             });
    
    
                                                        counter++; 
                                                        ecounter++;
                                                        } else {
                                                            clearInterval(interval);
    
                                                            $("#sending_process").html("Email Sending Complete");
                                                            //alert('done');
                                                        }
                                            };
    
                            interval = setInterval(check,5000);
    
    
                             ///////////////////////////////////////////////////////////////////////////////////////
    
    
    
    
    
                   }
            }); 
    
    
    
    
                        }
    
    
    
                        //////////////////////////////////////////////
    
    
    
    
            });
        }, n++ * 1000);
    
    });
    

    它无法正常工作......

    我正在使用间隔,否则脚本会注销并删除会话。

    这背后的基本思想就是那样

    1. 获取列表数量
    2. 从一个列表中收集电子邮件(如果可能,请收到所有电子邮件或从列表中每次收到1000封电子邮件)并向他们发送电子邮件
    3. 再次收到其他所选列表的电子邮件并发送电子邮件。
    4. 每封电子邮件都会发送到sendmails.php,处理完毕后会返回成功或错误并附加到页面中,然后会发送嵌套电子邮件地址。
    5. 在收到电子邮件的情况下,如果可能的话,它可以是一次性的所有电子邮件,但正如我所提到的,它可能是100,00封电子邮件而且它没有返回那么多数据,因此每个周期可以发送1000封电子邮件。

0 个答案:

没有答案