2014-10-30 89 views
0

我有一個應用程序運行在wordpress(使用$ wpdb)通過電子郵件發送文本。他們發送到[email protected]地址,該地址發送手機短信。通過電子郵件地址發送文本消息 - 故障信息

我注意到一些運營商將長文本視爲媒體消息,因此我的代碼將長消息拆分爲多封電子郵件。下面是代碼:

for ($i=0; $i<count($recipientEmail); $i++) { 
     $to = $recipientEmail[$i]; 
     if (strlen($message) > 115) { 
      // ceil rounds any fractions up 
      $numTexts = ceil(strlen($message)/115); 
      $zero = 0; 
      $onetwentyfive = 115; 
      $noRepeatconfirmations = ''; 
      for ($n=0; $n<$numTexts; $n++) { 
       $messagePart = substr($message, $zero, $onetwentyfive); 
       $messagePart .= "\r\n".($n+1)." of ".$numTexts; 
       if ($n > 0) { 
        $messagePart = '-'.$messagePart; 
       } 
       // if (!filter_var($to, FILTER_VALIDATE_EMAIL)) { 
       if (!wp_mail($to, $subject, $messagePart, $headers)) { 
        return false; 
       } else { 
        if ($noRepeatconfirmations !== $recipientEmail[$i]) { 
         $total .= $recipientEmail[$i].", "; 
        } 
        $noRepeatconfirmations = $recipientEmail[$i]; 
       } 
       $zero += 115; 
       $onetwentyfive += 115; 
      } 
     } else { 
      // if (!filter_var($to, FILTER_VALIDATE_EMAIL)) { 
      if (!wp_mail($to, $subject, $message, $headers)) { 
       return false; 
      } else { 
       $total .= $recipientEmail[$i].", "; 
      } 
     } 
    } 

我的問題是,當我發送長警惕自己發送以正確的順序,但是當我將消息發送到150+的人它在一個奇怪的順序發送(第3 ,1日,2日)。

我想知道是否有一種方法可以在我的代碼中使用,或者我的郵件服務器上的設置可以用來使消息按順序發送。

+0

查看此答案http://stackoverflow.com/a/26661243/它可以幫助您瞭解如何對數組進行排序。我沒有downvote順便說一句。我知道排序陣列有時會很困難,我無法幫助任何進一步的尼古拉斯。如果這個答案沒有幫助,或者看起來很複雜,那麼在Google上使用「sort numbers array PHP」進一步研究。祝你好運。 – 2014-10-30 19:16:04

+0

順便說一下,通過電子郵件發送短信的工作量很小,但不要指望運營商允許它,如果你開始推高音量。爲此你需要Twilio之類的東西。 – ceejayoz 2014-10-30 21:18:29

回答

2

沒有辦法保證短信,彩信或電子郵件將按照發送順序收到,而不會間隔10秒左右。 希望消息A將在B發送之前發送,B在C之前發送,以此類推。

即使這仍然不是100%,因爲有些郵件服務器會在發送(發送者和接收端點)之前排隊消息。

這只是野獸的性質。

注意:我不是100%確定的彩信,但100%正面的電子郵件和約75%的短信。

+0

可能想使用SMS網關API進行研究。我看到的最大障礙是使用電子郵件進行交付。看看http://www.message-media.com/business/products/integration#developer-apis – Wranorn 2014-10-30 21:21:39

+0

這是我害怕的東西。我只是將信息限制在一定的長度。謝謝。 – 2014-10-31 15:22:40

+0

其實我只是有想法,而不是每個用戶一次發送3封電子郵件,發送每個用戶的第一部分,然後發送第二部分,等等。我認爲這應該可以解決這個問題,因爲發送給150個用戶將會有足夠的延遲。 – 2014-10-31 17:10:09

相關問題