detener ejecucion script php hasta que se envie correo

Iniciado por astrojohan, 9 Diciembre 2017, 16:59 PM

0 Miembros y 2 Visitantes están viendo este tema.

astrojohan

hola amigos.queria pediros ayuda sobre algo que seguramente sera sencillo, pero aun no conozco la solucion.
Tengo un script php que envia un correo electrónico, y quiero de tener la ejecucion de este hasta que realmente se haya enviado el correo, y luego seguir,para mostrar un mensaje que diga: "el correo se ha enviado" o "Error en el envio del correo, verifique que su cuenta de correo esta activa".
¿es posible esto?
la funcion mail me devuelve true o false en funcion de si se ha enviado el corro o no,pero como tarda un tiempo, para cuando lo envia y devuelve el true, ya se ha ejecutado el resto del programa, por lo que si encuentra un if-else evaluando el resultado del envio, siempre entra en el else (porque lo toma como que no ha hecho el envio)
creo que tambien se puede hacer con ajax, supongo,pero es una cosa tan sencilla que imagino que no merecerá la pena xq php tendrá funciones para ello.
Os agradezco la atencion prestada, un saludo.

engel lex

Mail no envia el correo, mail retorna true si el correo ha sido aceptado para ser enviado por el servidor de envío

http://php.net/manual/es/function.mail.php

Parar php por una función va contra los principios el php debe pasar lo más brevemente posible para que libere esa carga del servidor
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

astrojohan

gracias.si la funcion mail me funciona, pero queria intentar parar la ejecucion hasta que se enviara el correo,pero acabo de caer en el "or die".voy a ver si eso funciona,pero me da que no,por aquello de que mail tarda un tiempo en enviar el correo

engel lex

repito, mail no envía el correo, mail le pasa el correo al servidor de correo, si este ultimo acpeta el correo, mail retorna true, si este ultimo no exíste o está mal configurado retorna false
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

[u]nsigned

La unica forma de hacer algo asi seria utilizar tu propio servidor SMTP, y aun asi no es nada recomendable. Deberias reconsiderar la logica de negocio de tu aplicacion en todo caso...

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!