有人想从PHP发送文本消息吗?

有人想从PHP发送文本消息吗?,php,text,sms,cell,Php,Text,Sms,Cell,我创建了一个PHP类,它极大地简化了使用PHP发送文本消息的过程。我知道这不是一个真正的“帮助我走出去!”类型的问题本身,但我想分享代码,因为我发现它非常有用。你可以自由地对代码做任何你想做的事情。你甚至可以到处告诉别人你成功了。如果出了什么问题,就不要指责我 不言而喻: <?php // Carrier email suffixes define('ATT', 'txt.att.net'); define('SPRINT', '

我创建了一个PHP类,它极大地简化了使用PHP发送文本消息的过程。我知道这不是一个真正的“帮助我走出去!”类型的问题本身,但我想分享代码,因为我发现它非常有用。你可以自由地对代码做任何你想做的事情。你甚至可以到处告诉别人你成功了。如果出了什么问题,就不要指责我

不言而喻:

<?php

// Carrier email suffixes
define('ATT',                 'txt.att.net');
define('SPRINT',              'messaging.sprintpcs.com');
define('TMOBILE',             'tmomail.net');
define('US_CELLULAR',         'email.uscc.net');
define('VERIZON',             'vtext.com');
define('VIRGIN_MOBILE',       'vmobl.com');

// Message parameters
define('MAX_SMS_LENGTH',       140);
define('DEFAULT_CELL_SENDER',  'sender@example.com');

class Cell
{
    public static function send($pNumber, $pCarrier, $pMessage)
    {
        // Keep a notifier of whether the message was sent or not
        $Success = true;

        // Define the recipient address
        $Recipient = $pNumber . '@' . $pCarrier;

        // Find out how many message will have to be sent
        $MessageCount = ceil(strlen($pMessage) / MAX_SMS_LENGTH);

        for ($i = 0; $i < $MessageCount; $i++)
        {
            // Calculate the subset of the entire message that can be sent at once
            $StartIndex = $i * MAX_SMS_LENGTH;
            $Message = stripslashes(substr($pMessage, $StartIndex, MAX_SMS_LENGTH));

            // Display page numbers on messages that span multiple iterations
            if ($MessageCount > 1)
            {
                $Message .= ' (' . ($i + 1) . '/' . $MessageCount . ')';
            }

            // Send the message
            $Success &= mail($Recipient, null, $Message, 'From: ' . DEFAULT_CELL_SENDER);
        }

        return $Success;        
    }
}

?>

它自动处理跨多条文本消息的分页。另外,我知道短信一般限制在160个字符以内,而不是140个字符。我将限制减少了20个字符,以便为电子邮件地址留出空间


我希望这能帮助其他人。干杯

如果您的问题是,在哪里共享此代码,我更愿意,或者。祝你好运;)

好吧,针对你对问题的评论,我可以看到四个主要的“缺陷”:

  • 不允许发送Unicode短信
  • 不支持发送连接的短信息,这真的很难看(n/m)
  • 添加
    (n/m)
    时,您没有正确计算消息长度
  • 使用
    foreach(str\u split($sms,140)作为$sms\u部分)可以做得更好。

  • 我看到的主要问题是,它只适用于美国航空公司。如果你真的想通过代码发送短信,也许你应该使用类似

    的东西,可能更适合PHPClasses这样的网站,问答网站也是如此。@RussellDias,基本上把你的脚本放在这里不是一个坏主意,因为我们可以讨论这些脚本中的缺陷。我会努力在你的“问题”中添加一个问题.如果您发现任何缺陷,请指出!很高兴你能分享你的代码,我很感激你的想法,但按照欧洲标准,这并不是一个“真正的”短信发送脚本。我不知道在美国是怎么回事,但在这里,手机的主人通常必须手动激活“电子邮件到短信”功能,以这种方式接收信息可能会产生费用(或者限制x条免费信息)。唯一真正可靠的方法是使用网关提供商直接通过移动网络发送消息。