2014-10-30 1 views
0

나는 워드 프레스 ($ 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 보내는입니다 , 1st, 2nd).

내 코드에서 사용할 수있는 방법이 있는지 궁금 해서요. 내 메일 서버의 설정을 사용하여 메시지를 순서대로 보낼 수 있는지 궁금합니다.

+0

이 답변보기 http://stackoverflow.com/a/26661243/ 배열을 정렬하는 방법을 이해하는 데 도움이 될 수 있습니다. 나는 downwote btw하지 않았다. 배열을 정렬하는 것이 때때로 어려울 수 있다는 것을 알고 있으며 더 이상 니콜라스를 도울 수 없습니다. 그 대답이 도움이되지 않거나 복잡해 보인다면, "sort numbers array PHP"를 사용하여 Google에 대한 연구를 더 진행하십시오. 행운을 빕니다. –

+0

한편 전자 메일을 통한 SMS 전송은 소량으로 이루어 지지만 대량 판매를 시작하면 통신 회사에서 허용 할 것으로 기대하지 않습니다. Twilio와 같은 것이 필요할 것입니다. – ceejayoz

답변

2

SMS, MMS 또는 전자 메일 메시지가 전송 된 순서대로 수신되도록 보장 할 방법이 없으며 10 초 정도 간격을 두지 않아도됩니다. B가 전송되기 전에 메시지 A가 배달되고 C보다 먼저 B가 배달되는 것이 좋을 것입니다.

일부 메일 서버는 메시지를 배달하기 전에 (발신자와 수신자의 말단 지점) 대기열에 보관하므로 100 %가 아닙니다.

짐승의 본질 일뿐입니다.

참고 : MMS에서는 100 % 확신 할 수 없지만 전자 메일에서는 100 %, SMS에서는 약 75 %의 긍정적 인 반응을 보입니다.

+0

SMS 게이트웨이 API 사용에 대해 살펴볼 수 있습니다. 내가보기에 가장 큰 장애물은 배달을 위해 이메일을 사용하는 것입니다. http://www.message-media.com/business/products/integration#developer-apis – Wranorn

+0

과 같은 것을보십시오. 이것은 내가 두려워했던 것입니다. 메시지를 특정 길이로 제한합니다. 감사. –

+0

사실 나는 방금 사용자 당 한 번에 3 개의 이메일을 보내고, 각 사용자에게 첫 번째 부분을 보내고, 두 번째 부분을 보냅니다. 나는이 문제를 해결해야한다고 생각한다. 150 명의 사용자에게 보내는 것이 지연 될 것이기 때문이다. –

관련 문제