我有一个在wordpress中运行的应用程序(使用$ wpdb)通过电子邮件发送文本。他们发送到1234567890@vtext.com地址,该地址发送手机短信。
我注意到有些运营商会将长文本视为媒体消息,因此我的代码会将长消息拆分为多封电子邮件。这是代码:
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 :(得分:2)
无法保证将按照发送的顺序接收短信,彩信或电子邮件,而不会将其间隔10秒左右。 希望消息A将在发送B之前发送,B在C之前发送,依此类推。
即使这仍然不是100%,因为有些邮件服务器会在发送前将邮件排队(发送方和接收端点)。
这只是野兽的本性。
注意:我不是百分百确定MMS,但100%肯定电子邮件,大约75%的短信。