PHP - Acelerar Envio de correos "Mail" PHP

 
Vista:

Acelerar Envio de correos "Mail" PHP

Publicado por lol (2 intervenciones) el 11/08/2014 16:01:00
Hola buenas:

Tengo un "problema" y es que encuentro que php se demora un poco mas de lo que quisiera en enviar un correo.

Tengo un formulario que al llenar los campos y enviarlo, te manda un correo, guarda los datos en una tabla SQL y genera un PDF con los datos del formulario. Si solo guardo los datos y genero el PDF es casi instantáneo, pero al establecer que envío un correo primero se demora unos 4 a 5 segundos (no es mucho pero quisiera ver si se puede optimizar ese tiempo.
También estoy viendo la posibilidad de establecer un mensaje que diga "enviando" o algo parecido pero no puedo ya que al abrir el archivo se va a la función mail independiente del contenido html de la pagina.

Estoy usando PHP 5.3.10 y sSMTP (con una cuenta GMAIL) como servidor SMTP.

La configuración de sSMTP es:

1
2
3
4
5
6
7
8
9
root=micorreo@gmail.com
mailhub=smtp.gmail.com:587
hostname=micorreo@gmail.com
UseSTARTTLS=YES
AuthUser=micorreo@gmail.com
AuthPass=********
rewriteDomain=
hostname=micorreo@gmail.com
FromLineOverride=YES


En PHP.ini

1
2
3
4
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
sendmail_path = "/usr/sbin/sendmail -t -i"


El archivo que envia, guarda y muestra en PDF:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
$nombre = $_POST['h_nombre'];
$mail = 'micorreo@gmail.com';
$header = 'From: ' . $mail . "\n";
$header .= "X-Mailer: PHP/" . phpversion() . "\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain";
$mensaje = "Se ha registrado :\n\n";
$mensaje .= "-----------------------MENSAJE------------------\n";
 
$mensaje .= "Nombre: " . $_POST['h_nombre'] . "\n";
$mensaje .= "Fecha: " . $_POST['datepicker'] . "\n";
$mensaje .= "Tipo: " . $_POST['h_tipo'] . "\n";
$para = 'destinatario@gmail.com';
$asunto = 'ASUNTO';
mail($para, $asunto, utf8_decode($mensaje), $header);
 
echo 'Enviando correo....';
 
 
//conexión base de datos
$conexion = mysql_connect("localhost", "root", "cepiaw3mysql");
mysql_select_db("administracion", $conexion) or die('No se puede seleccionar la base de datos');
mysql_query("SET NAMES 'utf8'");
 
    //Comprovamos si se han recivido datos del formulario
    if(isset($_POST['h_nombre'])){
      //Insertamos los datos en SQL 
      $insertar = "INSERT INTO ................CODIGO............... GUARDO LOS DATOS
?>


<?php
include ('fpdf/fpdf.php');
$pdf = new FPDF('P','mm','Letter');
$pdf->AddPage('P','Letter');
$pdf->SetFont('Arial','B', 10);
 
//Texto de Título
$pdf->SetXY(68, 15);
$pdf->Image('fpdf/logo.JPG', 40, 10, 'JPG');
............CODIGO.......................... CREO EL PDF CON LOS DATOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Acelerar Envio de correos "Mail" PHP

Publicado por xve (6935 intervenciones) el 11/08/2014 23:23:06
Hola Lol, ten en cuenta, que hay una conexión con el servidor de gmail para el envió del mismo, el cual tiene una negociación con el certificado, usuario y contraseña... dependiendo de las lineas y demás, se puede demorar un poco.

Mucha gente lo que hace es una cola de mensajes a enviar, y luego desde cualquier aplicación del servidor va enviando dicha cola, de esta manera, el usuario tiene la respuesta automáticamente, y la aplicación que envía los correos, si tarda 5 o 10 segundos ya no tiene importancia.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acelerar Envio de correos "Mail" PHP

Publicado por lol (2 intervenciones) el 12/08/2014 15:07:44
Gracias por tu respuesta xve.

Entonces es algo normal la pequeña demora por la conexión con los servicios de correo.

Voy a averiguar un poco más sobre como colocar algún mensaje que diga: enviando o generando para que el usuario separa que se esta "preparando el documento".

Gracias nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar