Como enviar mensajes a celulares Telcel utilizando PHP
Una de las compañías de celulares en México que permite el envío de mensajes vía sms es www.telcel.com, aunque previamente se tenga que tener un contrato mensual de el amigo bip.
Para activar el servicio sólo necesitas envíar un mensaje con la palabra ACTIVAR al número 247 (BIP). El costo del servicio es de $100.00 por 30 días del servicio.Utilizando el siguientecódigo (Aquí las instrucciones de como utilizarlo):
<?php
if(isset($_GET['host'])&&!ereg("^ *$",$_GET['host'])){
$host=$_GET['host'];
}else{
echo"<span id="error"><b>Error</b>: No ha definido el <i>host</i>.</span><br />";
$error=true;
}
if(isset($_GET['uri'])&&!ereg("^ *$",$_GET['uri'])){
$uri=$_GET['uri'];
}else{
echo"<span id="error"><b>Error</b>: No ha definido el <i>uri</i> al cual se enviarán los datos.</span><br />";
$error=true;
}
if(isset($_GET['vars'])&&!ereg("^ *$",$_GET['vars'])){
$vars=$_GET['vars'];
}else{
echo"<span id="error"><b>Error</b>: No ha definido <i>vars</i>.</span><br />";
$error=true;
}
if(isset($_GET['puerto'])&&!ereg("^ *$",$_GET['puerto'])){
$puerto=$_GET['puerto'];
}else{
echo"<span id="error"><b>Error</b>: Es necesario definir el <i>puerto</i> por el cual se ejecutará la conexión.</span><br />";
$error=true;
}
if(isset($error)&&$error==true)exit;
$header = "Host: $hostrn";
$header .= "User-Agent: PHP Scriptrn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Content-Length: ".strlen($vars)."rn";
$header .= "Connection: closernrn";
$fp = pfsockopen("tcp://".$host, $puerto, $errno, $errstr, 30);
if($fp){
fputs($fp, "POST $uri HTTP/1.1rn");
fputs($fp, $header.$vars);
fwrite($fp, $out);
if(isset($_GET[view])){
echo"<pre>";
while (!feof($fp)) {
echo fgets($fp, 128);
}
echo"</pre>";
}
fclose($fp);
echo"ok";
}else{
echo"error";
}
?>
y la siguiente función:
<?
function msg_telcel($msg,$cel){
$da = fsockopen("localhost", 80, $errno, $errstr, 30);
$salida = "GET /post.php?host=www.telcel.com&uri=/mensajes/servlet/mensajeauto&vars=".urlencode("val_action2=&tel=".$cel."&mensaje=".$msg."")."&puerto=80&view HTTP/1.1rn";
$salida .= "Host: localhostrn";
$salida .= "Connection: Closernrn";
fwrite($da, $salida);
while (!feof($da)) {
fgets($da, 128);
}
fclose($da);
$da = fsockopen("localhost", 80, $errno, $errstr, 30);
$salida = "GET /post.php?host=www.telcel.com&uri=/mensajes/servlet/mensajeauto&vars=".urlencode("tel1=".$cel."&mensaje=".$msg."")."&puerto=80&view HTTP/1.1rn";
$salida .= "Host: localhostrn";
$salida .= "Connection: Closernrn";
fwrite($da, $salida);
while (!feof($da)) {
fgets($da, 128);
}
fclose($da);
}
?>
se puede enviar mensajes a telcel utilizando los datos de su propio formulario.
Es una función súper sencilla que a mi me ha funcionado muy bien :-).
Comentarios
2007-04-18 19:04:08
Ricardo
Me parece interesante la url que propuso Victor de la Rocha, ustedes saben como hacer eso o conocen algun script para hacerlo
Me parece interesante la url que propuso Victor de la Rocha, ustedes saben como hacer eso o conocen algun script para hacerlo
2007-05-30 17:15:44
Lors
Por mas que trato de entender este codigo no entiendo, supongamos que la funcion msg_telcel($msg, $cel) esta dentro del archivo prueba.php y para fines practicos al final del archivo la mando llamar msg_telcel('hola', '555555555'); pero propiamente no se que hace la funcion, ya que tratas de abrir un socket y mandas llamar el post.php y asi simplemente no marca nada, en cambio si para probar hago lo siguiente me marca error:
[code]
$host="www.telcel.com";
$puerto="8080";
$uri="/mensajes/servlet/mensajeauto";
$vars=urlencode("tel1=".$cel."&mensaje=".$msg."");
$header = "Host: $hostrn";
$header .= "User-Agent: PHP Scriptrn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Content-Length: ".strlen($vars)."rn";
$header .= "Connection: closernrn";
$fp = pfsockopen("ftp://".$host, $puerto, $errno, $errstr, 30);
[/code]
entonces o estoy mal o hay algo que no funciona en el codigo, perdon por molestar pero no se mucho de estas cosas
ciao
Por mas que trato de entender este codigo no entiendo, supongamos que la funcion msg_telcel($msg, $cel) esta dentro del archivo prueba.php y para fines practicos al final del archivo la mando llamar msg_telcel('hola', '555555555'); pero propiamente no se que hace la funcion, ya que tratas de abrir un socket y mandas llamar el post.php y asi simplemente no marca nada, en cambio si para probar hago lo siguiente me marca error:
[code]
$host="www.telcel.com";
$puerto="8080";
$uri="/mensajes/servlet/mensajeauto";
$vars=urlencode("tel1=".$cel."&mensaje=".$msg."");
$header = "Host: $hostrn";
$header .= "User-Agent: PHP Scriptrn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Content-Length: ".strlen($vars)."rn";
$header .= "Connection: closernrn";
$fp = pfsockopen("ftp://".$host, $puerto, $errno, $errstr, 30);
[/code]
entonces o estoy mal o hay algo que no funciona en el codigo, perdon por molestar pero no se mucho de estas cosas
ciao
2007-05-31 07:51:27
Victor De la Rocha
Probablemente hayan cambiado los parámetos que hay que enviarla el servlet de telcel.
¿Que error te marca?
Probablemente hayan cambiado los parámetos que hay que enviarla el servlet de telcel.
¿Que error te marca?
2007-06-23 14:57:17
diego martinez
me gustaria implementar este servicio desde mi pagina, me podrian pasar un archivo de ejemplo, voy iniciando en esto el php, gracias
me gustaria implementar este servicio desde mi pagina, me podrian pasar un archivo de ejemplo, voy iniciando en esto el php, gracias
Recomiendo utilizar www.hola-tu.com o comprar algún servicio con tu proovedor si se desea enviar msgs gratis :)