У меня есть приложение, работающее в 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-й).
Мне было интересно, есть ли метод, который я мог бы использовать в своем коде, или параметр на почтовом сервере, который я мог бы использовать, чтобы сообщения отправлялись по порядку.
Невозможно гарантировать, что SMS, MMS или сообщения электронной почты будут получены в том порядке, в котором они были отправлены, если не считать интервал между ними в 10 секунд или около того. С надеждой сообщение A будет доставлено до того, как B будет отправлено, а B будет доставлено до C, и так далее.
Даже в этом случае это не 100%, поскольку некоторые почтовые серверы ставят в очередь сообщения перед доставкой (отправитель и конечные точки получения).
Это просто природа зверя.
ПРИМЕЧАНИЕ: я не уверен на 100% в MMS, но на 100% положительно в электронной почте и около 75% в SMS.
Других решений пока нет …