Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Diabliyo

#521
PHP / Re: Problemas con envio de correos en php !!
14 Noviembre 2008, 21:37 PM
Hola

Listo, solamente quite el set_time_limit(600) hacia dentro del while() donde invoco la funcion enviar_correo(). Con esto logre enviar todo lo deseado xD...

bye bye
#522
PHP / Re: Problemas con envio de correos en php !!
14 Noviembre 2008, 20:21 PM
Cita de: el-brujo en 14 Noviembre 2008, 19:55 PM
La gente suele usar:

set_time_limit(20);

o

sleep(100);

para pausar envíos en los e-mails, pero creo que debes poner ese código dentro del bucle while en tu caso.

Bueno, entonces lo que debo hacer es modificar mi codigo actual y cambiar de posicion los set_time_limit(), cierto ??... moviemdolos hacia la parte antes que se invoque la funcion mail(), cierto ??..

Por otr lado, yo tengo entendido que apartir de que un archivo PHP esta ciento leido e interpretado por el compiler de PHP y mostrado su resultado en tags HTML hacia el cliente, este proceso de duracion se le llama tiempo de ejecucion, asi que independientemente de que se aplique: sleep(), fopen, fread, mail(), o cualquier otra funcion, si el tiempo que tarde dicho archivo PHP en interpretarse o hacer su tarea, estara limitado por el tiempo de ejecucion establecido en la configuracion del php.ini... o no ???, asi lo entiendo yo !!

Por lo tanto si fuese correcto mi conocimiento de arriba, la implementacion de sleep() no serviria de mucho :s, ya que el script al momento de estare jecutando realizaria un retardo (sleep()) y esto se uniria al tiempo de ejecucion limite :S !!...

Posiblemente tambien no me has entendido en mi post principal, nose :S !!...

bye bye
#523
PHP / Problemas con envio de correos en php !!
14 Noviembre 2008, 19:31 PM
Que tal..

Realize un pequeno sistema para:

- guardar correos por grupos
- guardar correos en lugares independientes (grupos distintos)
- enviar correos a grupos
- enviar correos a direcciones independientes

Actualmente uno de los grupos donde contengo correos a crecido demasiado :S, y cuando le doy Enviar Correos a dicho grupo (contiene todos los destinatarios) la pagina se queda enviando correos y de repente como que el script se frena o simplemente ya no responde, vaya, ya no pone nada en la pantalla, ya sea "Correos enviados" o  bien "Problemas para enviar correos".

Cuando realize el proceso de codificacion de mi sistema me asegure de implementar la funcion set_time_limit(segundos), para aumentar el tiempo de ejecucion del script, estableciendolo a 5 minutos (set_time_limit(300);), pero aun asi el codigo es frenado :(...

Mi sistema esta funcionando en un hosting en internet (el cual estoy rentando).

Por otro lado, en mi servicio de hosting siempre me posicionan en mi directorio de raiz el archivo php.ini el cual posee ya variables configuradas y pues me imagino que lo posicionan hay para que yo pueda variar dicha informacion, de modo que segun la modificacion solo agrege esto: max_execution_time 300, pero aun asi el script no puede terminar de enviar correos :(.

Aqui dejo el php.ini que tengo en el directorio de raiz del servidor:

register_globals = off
allow_url_fopen = off

expose_php = Off
max_input_time = 300
max_execution_time = 300
variables_order = "EGPCS"
extension_dir = ./
upload_tmp_dir = /tmp
precision = 12
SMTP = relay-hosting.secureserver.net
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

[Zend]
zend_extension=/usr/local/zo/ZendExtensionManager.so
zend_extension=/usr/local/zo/4_3/ZendOptimizer.so

[browscap]
browscap = php_browscap.ini


Aqui un pedazo del codigo de mi sistema para envio de mails"

Código (php) [Seleccionar]

//verifica que los correos y grupos sean validos, a su vez les realiza el proceso de verificacion de dominio, quita
//los espacios, asegura que el texto este en minusculas (lo convierte),etc...
//Si todo tuvo exito, retorna todos los correos delimitados por una coma
if( ($mail_dest=verificar_correos_grupos( proteger_cadena($_POST["publicidad_redactar_emaildestino"]) )) )
{
set_time_limit(600); //10 minutos

if( strchr($mail_dest, ",") ) //si contiene coma, existen mas mails
{
$x_mails= explode( ",", $mail_dest ); //dividimos

for( $i=0; $i<sizeof($x_mails); $i++ ) //ciclo para recorrer toda la lista
{
if( strchr($x_mails[$i], "@") ) //si existe un arroba es mail directo
enviar_correo( $x_mails[$i], proteger_cadena($_POST["publicidad_redactar_titulo"]), 6, proteger_cadena($_POST["publicidad_redactar_codigo"]) );
else //es un grupo
{
$grupo_id= consultar_datos_general( "PRIVILEGIOS", "NOMBRE='". $x_mails[$i]. "'", "ID"); //obtenemso ID apartir del nombre de grupo
$cons_lista= consultar_con( "LISTA_CORREOS", "GRUPO='". $grupo_id. "'" ); //obtenemos todos los correos del grupo
while( $buf_lista=mysql_fetch_array($cons_lista) ) //recorriendo el buffer
enviar_correo( $buf_lista["EMAIL"], proteger_cadena($_POST["publicidad_redactar_titulo"]), 6, proteger_cadena($_POST["publicidad_redactar_codigo"]) );

unset($cons_lista);
unset($buf_lista);
unset($grupo_id);
}
}
unset($x_mails);
}
else //solo es un destinatario o grupo
{
if( strchr($mail_dest, "@") ) //si existe un arroba es mail directo
enviar_correo( $mail_dest, proteger_cadena($_POST["publicidad_redactar_titulo"]), 6, proteger_cadena($_POST["publicidad_redactar_codigo"]) );
else //es un grupo
{
$grupo_id= consultar_datos_general( "PRIVILEGIOS", "NOMBRE='". $mail_dest. "'", "ID"); //obtenemso ID apartir del nombre de grupo
$cons_lista= consultar_con( "LISTA_CORREOS", "GRUPO='". $grupo_id. "'" ); //obtenemos todos los correos del grupo
while( $buf_lista=mysql_fetch_array($cons_lista) ) //recorremos el buffer
enviar_correo( $buf_lista["EMAIL"], proteger_cadena($_POST["publicidad_redactar_titulo"]), 6, proteger_cadena($_POST["publicidad_redactar_codigo"]) );

unset($cons_lista);
unset($buf_lista);
unset($grupo_id);
}
}

//esto es solo como metodo estadistico, se agrega un incremente a diho grupo que se
//le ha enviado un correo
$trama= array(
"id"=>"'". $_GET["id_send"]. "'",
"hit"=>"'". (consultar_datos_general("PUBLICIDAD", "ID='". $_GET["id_send"]. "'", "hit")+1). "'"
);
actualizar_bdd( "PUBLICIDAD", $trama );
unset($trama);

set_time_limit(30); //30 segundos
echo "Publicidad enviada con exito...";
}
else
echo "Error: verifique los destinatarios.";

echo "<p><input type=\"submit\" value=\"Continuar\" class=\"boton_01\" onclick=\"cargar_datos( 'id=". $_GET["id"]. "&mov=ver', 'tabla_publicidad_lista', 'GET', '0' );\"> ";


Que podria hacer para poder completar el envio de mails a todos los contenedores ???

bye bye
#524
Cita de: SirGraham en 12 Noviembre 2008, 12:18 PM
Hola,

@Diabliyo:
Vamos haber que puede ser...

¿Que movil estas usando?

Saludos,
Sir Graham

Bueno si observas temas atras podras ver el modelo de mi movil, en fin (no quiero hacer mas largo este tema) te pegare nuevamente la info que ya habia pegado:

Browsing AA:BB:CC:DD:EE:FF ... //es una MAC fictisia :D
Service Description: Sony Ericsson K790
Service RecHandle: 0x10000

Service Name: OBEX Object Push
Service RecHandle: 0x1000b
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 6
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0100

Service Name: OBEX File Transfer
Service RecHandle: 0x1000c
Service Class ID List:
  "OBEX File Transfer" (0x1106)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 7
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX File Transfer" (0x1106)
    Version: 0x0100

Service Name: OBEX IrMC Sync Server
Service RecHandle: 0x1000d
Service Class ID List:
  "IrMC Sync" (0x1104)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 8
  "OBEX" (0x0008)
Profile Descriptor List:
  "IrMC Sync" (0x1104)
    Version: 0x0100

Service Name: OBEX Phonebook Server
Service RecHandle: 0x10010
Service Class ID List:
  "Phonebook Access - PSE" (0x112f)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 9
  "OBEX" (0x0008)
Profile Descriptor List:
  "Phonebook Access - PSE" (0x112f)
    Version: 0x0100


Al hacer: obexftp -b AA:BB:CC:DD:EE:FF -B 7 -p juego.jar en el celular me sale el mensaje de: "BlueZ (0) solicita acceso a sus elementos. Permitir ?", en el movil le pulso en Si, pero en la consola del obexftp simplemente se queda en Connecting... por unos segundos,  y despues sale failed: connect, despues volvia a intentar conectarse automaticamente el obexftp, y el mismo error... En ningun momento en mi movil me pide un PIN para realizar el emparejamiento, tampoco en mi Desktop...

bye bye
#525
A mi, en mi movil ni siquiera me pregunta sobre algun IPNG, solo me pregunta: "BlueZ (0) solicita acceso a sus elementos. Permitir ?"", le pulso que Si y jamas sucede algo :(, ni me pide ping ni nada !!..

Por le lado de la consola en linux solamente se queda pensando (Connecting...) y el procesod e conexion dice que FALLO, posteriormente el mismo comando obexftp re-intenta automaticamente dos veces mas la conexion y lo mismo :(...

Ayuda xD

Lewert, para configurar el ping o bien que tu dispositivo sea encontrado y posicionado en un archivo especial como por ejemplo: /dev/rfcomm0 solo debes ehcarle un vistado al directorio /etc/bluetooth/, dentro estara:

/etc/bluetooth/pin --> Aqui configuras el ping para que sea proporcionado automaticamente.
/etc/bluetooth/rfcomm.conf --> Aqui configuras para que sea automaticamente inicializado el dispositivo y enlazado al archivo especial /dev/rfcomm0

#526
Cita de: SirGraham en  7 Noviembre 2008, 09:40 AM
Hola,

Pero que fichero intenta mandar? en la linea no viene ninguno...  :o

shell# obexftp -b AA:BB:CC:DD:EE:FF -B 7 -l  ¿¿¿¿????

Saludos,
Sir Graham.


En un post ante-anterior me pusiste el siguiente ejemplo:

shell# obexftp  -b 00:11:22:33:44:55  -B 10  -l telecom/devinfo.txt

Asumo que el fichero telecom/devinfo.txt esta existente en el movil, cierto ??, o debe estar existente en mi dico duro del pc ?...

Por otra parte, yo entiendo que el comando: obexftp  -b 00:11:22:33:44:55  -B 10  -l telecom/devinfo.txt, realiza el listado de cierto directorio, ya que para enviar archivos seria: obexftp  -b 00:11:22:33:44:55  -B 10  -p telecom/devinfo.txt...

De todos modos ya intente asi y simplemente no envia ni en lista nada :(, solo sale el mensaje en mi celular (ya lo mencione), le doy en SI y sucede lo que ya tambien mencione :(.
shell# obexftp  -b 00:11:22:33:44:55  -B 7  -l telecom/devinfo.txt

obexftp  -b 00:11:22:33:44:55  -B 7  -p juego.jar


bye bye
#527
Cita de: SirGraham en  6 Noviembre 2008, 10:47 AM
Hola,

He estado mirando el tema.... y es que no tiene mas:

# hcitool scan
Para obtener los dispositivos activos,visibles y cercanos. Ademas de conocer su MAC.

# sdptool browse 00:11:22:33:44:55
Con la MAC del dispositivo en cuestion obtener los parametros del perfil OBEX (en este caso nos interesa el canal (channel)).

# obexftp  -b 00:11:22:33:44:55  -B 10  -l telecom/devinfo.txt
Realizar el envio con esos datos ya obtenidos MAC y channel por supuesto el nombre del fichero a enviar...
(Por cierto que ese nombre de fichero no lo he visto en los ejemplos que has puesto)

Es que no tiene mas misterio. ¿Te llega a pedir PIN en el movil?

Saludos,
Sir Graham.


Nop, del lado de mi celular no dice NADA, no pide PIN ni nada...

Pero ya encontre el problema :D...

El problema esta en la version de las Bluez o bien del Obex que proporciona el emerge del Gentoo, esto lo comprobe debido a que en mi PC Desktop no habia realizado las prueba mencionadas, todo lo estaba haciendo desde mi latop (Gentoo AMD64 2008.0) y pues me cambie a mi Desktop, donde tengo Slackware 12.0 con kernel 2.6.27, realize la instalacion de las bluez mas recientes y utilizando el obex que viene por defecto (v0.21), realize todos los pasos (omitiendo los de rfcomm) y al momento de hacer:

shell# obexftp -b AA:BB:CC:DD:EE:FF -B 7 -l

En mi celular aparecio el mensaje de: "BlueZ (0) solicita acceso a sus elementos. Permitir ?", en el movil le pulse en Si, pero en la consola del obexftp simplemente se quedaba en Connecting... por unos segundos,  y despues salia failed: connect, despues volvia a intentar conectarse automaticamente el obexftp, y el mismo error...

No se porque no conecta :S... Sera por el ping ?, sera por que no estan emparejado ?... Ya que en ningun momento en mi movil me aparecio el input para ponerle un PIN o algo asi :S...

Que puedo hacer ???....

bye bye

#528
Cita de: SirGraham en  4 Noviembre 2008, 21:49 PM
Hola,

Habeis probado sin el RFComm: Directamente con el ObexFTP...

Saludos,
Sir Graham.

sip, lo acabo de hacer...

1- conecte mi usb bluetooth.
2- active mi usb bluetooth (hciconfig hci0 up).
3- escanie por mi movi (hcitool scan)
4- intente lista mi movil (obexftp -b AA:BB:CC:DD:EE:FF -B 7 -l)

Y el mismo error que ya he pegado anteriormente :(...

Por si las moscas aqui mi lsmod:

shell# lsmod |grep blue
bluetooth              54820  7 rfcomm,l2cap,hci_usb


Que puedo hacer ??...

#529
Gracias por tu pronta respuesta, pero aun no lo consido :(, he revisado la lista de servicios que proporciona mi dispositivo movil con sdptool MAC y me han salido varios, aqui dejo algunos que se relacionan con Obex FTP:

Browsing AA:BB:CC:DD:EE:FF ... //es una MAC fictisia :D
Service Description: Sony Ericsson K790
Service RecHandle: 0x10000

Service Name: OBEX Object Push
Service RecHandle: 0x1000b
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 6
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0100

Service Name: OBEX File Transfer
Service RecHandle: 0x1000c
Service Class ID List:
  "OBEX File Transfer" (0x1106)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 7
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX File Transfer" (0x1106)
    Version: 0x0100

Service Name: OBEX IrMC Sync Server
Service RecHandle: 0x1000d
Service Class ID List:
  "IrMC Sync" (0x1104)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 8
  "OBEX" (0x0008)
Profile Descriptor List:
  "IrMC Sync" (0x1104)
    Version: 0x0100

Service Name: OBEX Phonebook Server
Service RecHandle: 0x10010
Service Class ID List:
  "Phonebook Access - PSE" (0x112f)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 9
  "OBEX" (0x0008)
Profile Descriptor List:
  "Phonebook Access - PSE" (0x112f)
    Version: 0x0100



Posteriormente al resultado obtenido he realizado lo siguiente sin obtener exito:

Intentando en Canal 6
//deslinkeamos el /dev/
shell# rfcomm release 0

//hacemos el nodo /dev/ en canal 6
shell# rfcomm bind 0 AA:BB:DD:CC:EE:FF 6
//intentamos listar
shell# obexftp -b AA:BB:DD:CC:EE:FF -B 6 -l
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect


Intentando en Canal 7
//deslinkeamos el /dev/
shell# rfcomm release 0

//hacemos el nodo /dev/ en canal 7
shell# rfcomm bind 0 AA:BB:DD:CC:EE:FF 7
//intentamos listar
shell# obexftp -b AA:BB:DD:CC:EE:FF -B 7 -l
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect


Help xD
#530
Cita de: SirGraham en  4 Noviembre 2008, 00:38 AM
Hola,

Pues es el camino. El OBEX en sus dos perfiles: Push y FTP es protocolo adecuado para ello.

Cual es el problema?

Saludos,
Sir Graham.

Claramente menciono que solamente logro hacer los puntos 1 y 2, pero no se que mas hacer para lograr transferir un archivo hacia mi dispositivo movil !!... OJO solo hago los pasos 1 y 2 ya mencionados en el primer post, pero no se que mas sigue hacer ni como :(

Continuando con mi test de prueba, logro establecer como /dev/rfcomm0 mi dispositivo movil (al parecer). No se si sea lo correcto, pero hice esto:

//escanenado
shell# hciconfig scan
11:22:33:44:55:66 Mi_Celular

//registrar dispositivo movil en /dev/
//rfcomm=programa, bind= conectar, 0= dev, 2= canal
shell#rfcomm bind 0 11:22:33:44:55:66 2

//verificando que se haya realizado el dev en el canal
shell# rfcomm show
rfcomm0: 11:22:33:44:55:66 on channel 2 clean

shell# ls -l /dev/|grep rfcom
/dev/rfcomm0


Bueno apartir de aqui intente utilizar el obexftp asi, pero me dice que no se puede conectar :(.

//en el siguiente comando intento listar el dispositivo movil
shell# obexftp -b 11:22:33:44:55:66 -B 2 -l
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Try 'obexftp' --help' for more information
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect
Connecting...failed: connect
Still trying to connect


Ya no se que hacer :(...