具有字符限制的PHP到SMS

具有字符限制的PHP到SMS,php,smtp,sms,Php,Smtp,Sms,我在发送短信方面有点困难,特别是发送到T-Mobile。我碰巧知道TMobile有160个字符的严格限制。如果超过160个字符,它应该切换到图像信息(我相信它被称为MMS) 现在,当我向ATT手机发送一条非常简单的文字时,它会显示: FRM:My Name MSG: Message 通过Fedora终端发送的PHP代码: mail("1238675309@txt.att.net", "", "Message"); 现在,当我们通过PHP将一条非常短的消息发送到一个TMobile号码时,它会顺

我在发送短信方面有点困难,特别是发送到T-Mobile。我碰巧知道TMobile有160个字符的严格限制。如果超过160个字符,它应该切换到图像信息(我相信它被称为MMS)

现在,当我向ATT手机发送一条非常简单的文字时,它会显示:

FRM:My Name
MSG:
Message
通过Fedora终端发送的PHP代码:

mail("1238675309@txt.att.net", "", "Message");
现在,当我们通过PHP将一条非常短的消息发送到一个TMobile号码时,它会顺利发送,因为即使使用FRM和MSG行,它也少于160个字符

很自然,这让我假设是额外的几行造成了一条长文本信息超过160个字符,而Tmobile不知道如何处理它。我用朋友的TMobile手机做的初步测试似乎证实了这一怀疑

所以,我的问题是,有没有一种方法可以发送信息,并且只发送信息到手机上?或者它总是有这些额外的“元”信息

我有以下限制:

  • 没有外部API
  • 如果绝对必要,我可以使用PHP5.1,也可以使用java、python脚本或Bash。我对其他语言不够熟悉
  • 服务器是CentOS
我没有足够的时间/权限完全重新安装以前的开发人员已经存在的系统


我愿意对此持开放态度。如果你们知道这不起作用的其他原因,我很高兴听到你们的评论

您可能可以使用带有Yes的条件语句,但是您已经在Tmobile端添加了元数据,对吗?因此,直到我使用mail()的那一刻,它将少于160个字符。调用mail()之后,我无法控制接收的内容。还是我大错特错了?我知道你说没有API,但TWILIO非常简单,而且非常便宜,每文本只需半美分。我不知道API和t-Mobile,所以我不能告诉你更多关于这个问题的信息。按照我的建议,使用strlen的逻辑是立即限制用户,并通知他们长度已超过允许的字符数。您可以使用纯PHP或JS/PHP的混合(甚至Ajax)实现这一点。成功后,执行
mail()
mail()
不会真正发送短信。因此,您发送的是一个网关,它可以将您的邮件转换为SMS,这取决于运营商(ATT、TMobile等)。一些运营商不这样做(或者要求客户订阅服务来这样做),所以这可能就是它不起作用的原因。此外,T-Mobile似乎特别有以下问题:。