PHP - Fatal error: Maximum execution time of 30 seconds exceeded

 
Vista:
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 02:51:35
he creado un codigo para enviar correos masivos. Pero cuando envio mensjes, me arroja este mensaje:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\prueba\tesis1\PHPMailer-master\class.smtp.php on line 338.

A que se debe este fatal error?
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por xve (6935 intervenciones) el 06/08/2018 11:23:11
Hola Zendi, el error es claro... tu proceso tarda mas de 30 segundos en ejecutarse, por eso se detiene el proceso.

Por defecto, PHP lleva un limite de ejecución de 30 segundos, el cual se puede aumentar si es necesario, pero no te lo recomiendo... lo suyo es averiguar porque razón tarda tanto y solucionarlo.

Cuantos correos estas enviando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 15:30:08
Hola xve.
El mensaje es para 11 cuentas de correos.

Este es el código:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
$connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=Rert*/1808");
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];
$asunto = $_POST["asunto_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$selected_radio = $_POST['gender'];
$destino = $_SERVER['DOCUMENT_ROOT']."/".$_FILES["archivo_fls"]["name"];
//echo $_SERVER['DOCUMENT_ROOT'];
$mensaje = $_POST["mensaje_txa"];
if(move_uploaded_file($archivo,$destino))
{
	$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server
	$smtp->Username = "xxxxxx@hotmail.com";
	// MAIL username
	$smtp->Password = "********";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "ald_mir@hotmail.com";
	// from mail 
	$smtp->FromName = "Aldon";
	// from mail name # Indicamos la dirección donde enviar el mensaje 
/*	$para="aaaaaaaaa@hotmail.com";
	$nameTo="Andres";
	$smtp->AddAddress($para,$nameTo); */
  $smtp->Subject = $asunto;
  $smtp->Body = $mensaje;
	$smtp->WordWrap = 50;
	$smtp->Timeout=30;
	$smtp->IsHTML(true);
	$smtp->MsgHTML("mensaje");
	$smtp->AddAttachment($destino, $_FILES["archivo_fls"]["name"]);
  $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=Rert*/1808");
/*se crea el array o query que debe traer tanto el nombre como la cuenta de correos*/
 
if ($selected_radio == 'male') {
    $male_status = 1.08191;
    $mailTo = "SELECT nombres,cta_correo FROM propietarios WHERE alicuota = $male_status";
}
else if ($selected_radio == 'female') {
    $female_status = 2.03111;
    $mailTo = "SELECT nombres,cta_correo FROM propietarios WHERE alicuota = $female_status";
}
else if ($selected_radio == 'other') {
    $other_status = 0;
    $mailTo = "SELECT nombres,cta_correo FROM propietarios WHERE alicuota = $other_status";
}
    $mailTo = @pg_query($connect,$mailTo);
          while($select3 = @pg_fetch_array($mailTo))
               {
                $name = $select3['nombres'];
          	    $mail = $select3['cta_correo'];
 
                $smtp->ClearAllRecipients();
                $smtp->AddAddress($mail,$name);
 
                   if (!$smtp->Send())
                      {
                         $respuesta ="El Documento no se pudo enviar";
                         $respuesta .="Error: " .$mail->ErrorInfo;
                  	  }
                	 else
                  	  {
                    	 $respuesta ="El Documento ha sido enviado a los Propietarios";
                	    }
               }
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="estilo.css" type="text/css">
<style type="text/css">
  .sr {
    background-color: #FFFFCF;
    color: #000000;
    font-family: Arial;
    font-size: 12px;
    text-align:center;
      }
  input.color1 {background-color: #00CC99; font-weight: bold; font-size: 12px; color: white;}
 
  form { margin: 1em auto; text-align: center; }
   span{ color: #F60; font-size: 1.5 em; } 
  </style>
</head>
<body> <b>
<?php echo $respuesta;?>
</b>
<form name="mail_frm" method="post" class="contact_form" id='formulario' enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]?>">
                <ul>
                <li>
                    <h2>Cont&aacute;cto</h2>
                </li>
            <li>
<!--             <label for="name">De:</label>
-->			 <input type="text" name="de_txt" id='De' placeholder="ald_mir@hotmail.com" disabled="true">
                <span class="form_hint">Formato correcto:  "ejemplo@hotmail.com"</span>
            </li>
 
            <li>
<!--             <label for="name">Asunto:</label>-->
              <input type="text" name="asunto" id="Asunto" placeholder="Asunto" required >
              <span class="form_hint">Formato correcto: "Asunto"</span>
		    </li>
 
            <li>
<!--             <label for="name">Adjuntar Archivo: </label>-->
              <input type="file" name="archivo_fls" id="Adjuntar Archivo" placeholder="Adjuntar Archivo" required/>
              <span class="form_hint">Formato correcto: "Adjuntar Archivo"</span>
		    </li>
        <li>
       <Input type = 'radio' name ='gender' value= 'male'/>
          1.08191<?PHP print $male_status; ?>
        </li>
        <li>
            <Input type = 'radio' name ='gender' value= 'female'/>
           2.03111<?PHP print $female_status; ?>
        </li>
        <td class="sr"><li>
            <Input type = 'radio' Name ='gender' value= 'Other'/>
                Sin Alicuota<?PHP print $other_status; ?>
        </li></td>
        <li>
<!--             <label for="name">Mensaje:</label>-->
<!--      Mensaje:<br />-->
<!--      <textarea name="mensaje_txa" cols="40" rows="6" placeholder="Mensaje"></textarea>-->
          <textarea name="mensaje" cols="40" rows="6" placeholder="Ingresa un mensaje (opcional)"></textarea>
              <span class="form_hint">Formato correcto: "Mensaje"</span>
		    </li>
            <li align='center'>
                <button class="submit" type='submit' value='Enviar formulario'>Enviar Mensaje</button>
                <button class="submit" type='reset' value='Reiniiar formulario'>Borrar Datos</button>
 
            </li>
</ul>
<!--  <input type="submit" name="enviar_btn" value="Enviar"/><br/> 
-->  </form>
</body>
</html>
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 15:52:49
Ahora esta arrojando este mensaje: El Documento no se pudo enviarError:
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
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por xve (6935 intervenciones) el 06/08/2018 17:53:56
Y no te indica el tipo de error?

Prueba a cambiar esto:
1
$respuesta .="Error: " .$mail->ErrorInfo;
por esto:
1
$respuesta .="Error: " .$smtp->ErrorInfo;


De todas maneras, por enviar 11 correos no deberia de tardar... has revisado exactamente que hace que vaya lento?
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 18:09:23
Bueno te explico, y disculpa no quiero caer en politica y mucho menos por aqui, pero tenemos dificultdes aqui en Venezuela, mi internet es precario, estoy utilizando un pendrive para accessar a internet, es de la compañia digitel BAM 3G. ahora no se si sera por ese motivo que tarde demasiado el envio de correos masivos.

con el codigo que me enviaste envia este mensaje:
1
El mensaje no se pudo enviarError: SMTP connect() failed.
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 18:31:29
La verdad es que este codigo funcionaba a la perfeccion, tenia tiempo que no revisaba esta aplicación, ahora que me pidieron esta aplicacion y estoy haciendo las pruebas ahora no funciona, sera la ley de murphy: lo que saldra mal queda mal.

Bueno esta aplicacion es para un condomnio el cual maneja cientos de apartamentos residenciales. Lo que en España llaman pisos.
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
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por xve (6935 intervenciones) el 06/08/2018 20:51:11
Este error, es porque no se puede conectar al servidor de correo que utilizas para el envio... en tu caso: smtp.live.com
Revisa que siga utilizando la misma configuración y que tengas acceso a ese dominio.
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 06/08/2018 23:52:27
asi mismo como indicas, asi está la linea:
1
$smtp->Host = "smtp.live.com";
; lo crucial es que como dije antes la aplicación funcionaba a perfección.

acaso habria que revisar algo más en la computadora para ver donde se ubica la conexión al servidor de correos? La verdad no soy muy dado al soporte técnico.
Bueno de todos modos yo sigo en esto hasta averiguarlo.
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 07/08/2018 00:04:06
Esta es la parte del codigo que presenta la configuracion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server
	$smtp->Username = "aaaaaaa@hotmail.com";
	// MAIL username
	$smtp->Password = "xxxxxxxxx";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "aaaaaaaa@hotmail.com";
	// from mail 
	$smtp->FromName = "Aldon";
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por antonio (1 intervención) el 07/08/2018 02:09:54
ya revisaste los puertos de salida de tu configuracion?? te recomiendo revisar la configuracion del cliente de correo al igual de utlizar un archivo .env para setear parametros de configuracion asi evitas porner informacion sensible en tu codigo.
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
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (1056 intervenciones) el 07/08/2018 14:46:50
Amigo gracias por responder y como reviso esa parte? y disculp mi desconocimiento la verdad de soporte a redes no conozco mucho.
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (117 intervenciones) el 08/08/2018 01:05:15
Hola esta es la configuracion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server
	$smtp->Username = "aaaaaaa@hotmail.com";
	// MAIL username
	$smtp->Password = "xxxxxxxxx";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "aaaaaaaa@hotmail.com";
	// from mail 
	$smtp->FromName = "Aldon";
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por Mauro (1031 intervenciones) el 15/08/2018 18:36:16
Yo recomendaría usar un servicio separado para realizar los envíos. Algo como SendGrid o MailGun.

Personalmente prefiero el segundo (La capa gratis te da hasta 10k envío mensuales... más que suficiente para cualquier aplicación de tamaño mediano o chico).

El punto es que el proceso de conexión a un SMTP es muy costoso y si tienes que hacerlo por cada request... la cosa se va a trabar.

Con estos servicios sólo debes hacer una llamada tipo cURL y te olvidas del tema (Además de que ganas trazabilidad desde los paneles propios de las herramientas).

He escrito algo más elaborado en https://academy.leewayweb.com/como-enviar-emails-con-php/
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

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por zendi (117 intervenciones) el 22/08/2018 20:51:08
Hola Que tal. Te pregunto: ¿MailGun es una libreria de PHP? ¿Es para linux y Windows?
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Maximum execution time of 30 seconds exceeded

Publicado por Mauro (1031 intervenciones) el 23/08/2018 22:21:34
Hola:

¿Cómo estás? No, MailGun es un servicio de envío de correos (FIjate el link en el mensaje anterior).

Lo mismo vale para SendGrid.

Son servicios a los que te conectás usando una llamada tipo WebService.

Podés ver más detalles acá
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