Foros del Web » Creando para Internet » Diseño web »

Como acelerar envio de email en PHP

Estas en el tema de Como acelerar envio de email en PHP en el foro de Diseño web en Foros del Web. Hola amigos, tengo un problemita, mi cliente me exige que tiene que llegarle inmediatamente un correo desde la forma de su website, el sitio esta ...
  #1 (permalink)  
Antiguo 12/07/2011, 14:09
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Como acelerar envio de email en PHP

Hola amigos, tengo un problemita, mi cliente me exige que tiene que llegarle inmediatamente un correo desde la forma de su website, el sitio esta en godaddy.com entonces a que se debe la velocidad en que se envia un correo?

tiene algo que ver con PHP?

gracias.

este es mi formulario:

<?php
session_start();
if(isset($_POST["Code"])) {
if(($_SESSION['captcha_code'] == $_POST['Code']) && (!empty($_SESSION['captcha_code'])) ) {
//Passed!

$captcha_msg="Thank you";
$admin= '[email protected]';
$admin .="Bcc:[email protected]";
$subject= 'Cosmetic Surgery in Mexico - Spanish';
$message= 'Message to '.$admin.' from '.$email.":\n\n";

foreach($HTTP_POST_VARS as $name=> $value) {
$message.= "$name: $value\n";
}

$message = WORDWRAP($message,75,"\n");

mail($admin, $subject, STRIPSLASHES( $message ) , "From: $email");

header('Location: http://'.getenv('HTTP_HOST').'/gracias.php');

}else{
// Not passed 8-(
$captcha_msg="<font color=\"ff0000\">"."Codigo Invalido"."</font>";
//$captcha_msg="invalid code";
if(isset($_POST["MM_insert"])){
unset($_POST["MM_insert"]);
}
if(isset($_POST["MM_update"])){
unset($_POST["MM_update"]);
}
}
}
class CaptchaImage {
var $font = "verdana.ttf";
function hex_to_dec($hexcolor){
//convert hex hex values to decimal ones
$dec_color=array('r'=>hexdec(substr($hexcolor,0,2) ),'g'=>hexdec(substr($hexcolor,2,2)),'b'=>hexdec(s ubstr($hexcolor,4,2)));
return $dec_color;
}
function generateCode($characters) {
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = '23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
function CaptchaImage($width='150',$height='30',$characters ='6',$hex_bg_color='FFFFFF',$hex_text_color="FF000 0",$hex_noise_color="CC0000", $img_file='captcha.jpg') {
$rgb_bg_color=$this->hex_to_dec($hex_bg_color);
$rgb_text_color=$this->hex_to_dec($hex_text_color);
$rgb_noise_color=$this->hex_to_dec($hex_noise_color);
$code = $this->generateCode($characters);
/* font size will be 60% of the image height */
$font_size = $height * 0.60;
$image = @imagecreate($width, $height) or die('Cannot Initialize new GD image stream');
/* set the colours */
$background_color = imagecolorallocate($image, $rgb_bg_color['r'], $rgb_bg_color['g'],$rgb_bg_color['b']);
$text_color = imagecolorallocate($image, $rgb_text_color['r'], $rgb_text_color['g'],$rgb_text_color['b']);
$noise_color = imagecolorallocate($image, $rgb_noise_color['r'], $rgb_noise_color['g'],$rgb_noise_color['b']);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
/* generate random lines in background */
for( $i=0; $i<($width*$height)/150; $i++ ) {
imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
}
/* create textbox and add text */
$textbox = imagettfbbox($font_size, 0, $this->font, $code);
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code);
/* save the image */
imagejpeg($image,$img_file);
imagedestroy($image);
echo "<img src=\"$img_file?".time()."\" width=\"$width\" height=\"$height\" alt=\"security code\" id=\"captchaImg\">";
$_SESSION['captcha_code'] = $code;
}

}
?>

Formulario:

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="text-panel">
<tr>
<td><form id="forma" name="forma" method="post" action="mismo.php" >
<table width="484" border="0" align="center" cellpadding="0" cellspacing="0" class="form" id="form">
<tr>
<td colspan="2"><p>
<label>* campo requerido<br />
<br />
</label>
</p></td>
</tr>
<tr>
<td width="220"><p>Nombre:</p></td>
<td width="170"><p>
<input name="contact_first_name" type="text" />
</p></td>
</tr>
<tr>
<td><p>Apellido:</p></td>
<td><p>
<input name="contact_last_name" type="text" />
</p></td>
</tr>
<tr>
<td><p>Direcci&oacute;n:</p></td>
<td><p>
<input name="contact_greeting" type="text" />
</p></td>
</tr>
<tr>
<td><p>
<label>Correo Electr&oacute;nico:</label>
<br />
<label></label>
</p></td>
<td><p>
<input name="email" type="text" id="email" size="25" maxlength="100" />
</p></td>
</tr>
<tr>
<td><p>Tel&eacute;fono:</p></td>
<td><p>
<input name="contact_home_phone" type="text" />
</p></td>
</tr>
<tr>
<td><p>&iquest;C&oacute;mo supo acerca de nosotros?</p></td>
<td><p>
<select name="how_did_you_hear_about_our_practice">
<option selected="selected">Seleccione Uno...</option>
<option value="Staff Member">Empleado </option>
<option value="Advertisement">Anuncio</option>
<option value="Yellow Pages">P&aacute;ginas Amarillas</option>
<option value="Other">Otro</option>
</select>
</p></td>
</tr>
<tr>
<td><p>&iquest;C&oacute;mo supo acerca de nuestra pagina de internet?</p></td>
<td><p>
<select name="how_did_you_find_our_website">
<option selected="selected">Seleccione uno...</option>
<option value="Search Engine">Search Engine</option>
<option value="Advertisement">Anuncio</option>
<option value="A friend">Un amigo</option>
<option value="Unknown">Desconocido</option>
</select>
</p></td>
</tr>
<tr>
<td><p>Comentarios:</p></td>
<td><p>
<textarea name="contact_comment" rows="7" cols="18"></textarea>
</p></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<p>* Por su seguridad, favor de poner el codigo de abajo:<br />
<?php $captcha = new CaptchaImage(150,50,5,'547d93','000000','0066CC'); ?>
<br />
Codigo
<input type="text" name="Code" id="Code" />
</p>
</div>
<p>
</label>
<?php echo $captcha_msg ?>&nbsp;&nbsp;</p></td>
</tr>
<tr>
<td><p>&nbsp;</p></td>
<td><p>
<input name="button2" type="submit" class="form" id="button2" value="Enviar" />
</p></td>
</tr>
</table>
</form></td>
</tr>
</table>

Gracias.
  #2 (permalink)  
Antiguo 12/07/2011, 15:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Como acelerar envio de email en PHP

la velocidad y efectividad de la llegada del correo depende de las configuraciones del SMTP, PHP no tiene ese alcance
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/07/2011, 16:14
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Como acelerar envio de email en PHP

Cita:
Iniciado por maycolalvarez Ver Mensaje
la velocidad y efectividad de la llegada del correo depende de las configuraciones del SMTP, PHP no tiene ese alcance
Mucha gracias, maycoalvarez, pero como puedo saber esas configuraciones de SMTP en donde viene? puedo modificarlo yo en mi cuenta de godaddy?

Pero mi duda tambien es por ejemplo te refieres a las cuentas ejemplo : [email protected] ? por que segun son algo asi como Relays pero tiene que ver con el codigo? por que practicamente no es enviado por un email de [email protected] sino desde el hosting del sitio web.

gracias.

Última edición por jose-web; 12/07/2011 a las 16:19 Razón: Mejorar la pregunta.
  #4 (permalink)  
Antiguo 12/07/2011, 18:19
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 17 años, 11 meses
Puntos: 33
Respuesta: Como acelerar envio de email en PHP

Jose-web:
El codigo de envio es procesado en segundos.
El sitio esta en goddady.com , por lo tanto,
es entregado de inmediato por php al servidor de correo
que debera estar alojado en la misma empresa.
La velocidad de entrega y recepcion depende
principalmente de el o los servidores de correo que tengan,
la cantidad de trafico de esa empresa, la hora de envio,
la capacidad de la conexion que tenga tu hosting, etc.
Para dar un ejemplo, un servidor de correo de esa categoria
o de esa clase de hosting, maneja sin problema cientos
de miles de correos por hora y logicamente hay horas en que
la capicadad de manejo se ve reducida en cuanto a tiempo se refiere
por la cantidad de correos que se necesitan enviar.
En fin las variables clave son:
- hora de envio
- conexion del servidor y capacidad de la conexion
Saludos
Y espero te ayude
Franco
Ps. Conoci de un caso que el envio tomaba hasta 24 horas y era
porque el servidor de correo tenia una conexion, medida en ancho de banda
muy pobre para la cantidad de correos que se queria enviar.
Recuerda que es un flujo.
Los servidores de correo estan configurados para manejar hasta miles
de conexiones instantaneas para el envio de grandes cantidades de correo
y en estos casos se vuelve muy importante el ancho de banda de la conexion
en la cual esta alojado el servidor de correo.
  #5 (permalink)  
Antiguo 13/07/2011, 10:15
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Como acelerar envio de email en PHP

Cita:
Iniciado por franco190453 Ver Mensaje
Jose-web:
El codigo de envio es procesado en segundos.
El sitio esta en goddady.com , por lo tanto,
es entregado de inmediato por php al servidor de correo
que debera estar alojado en la misma empresa.
La velocidad de entrega y recepcion depende
principalmente de el o los servidores de correo que tengan,
la cantidad de trafico de esa empresa, la hora de envio,
la capacidad de la conexion que tenga tu hosting, etc.
Para dar un ejemplo, un servidor de correo de esa categoria
o de esa clase de hosting, maneja sin problema cientos
de miles de correos por hora y logicamente hay horas en que
la capicadad de manejo se ve reducida en cuanto a tiempo se refiere
por la cantidad de correos que se necesitan enviar.
En fin las variables clave son:
- hora de envio
- conexion del servidor y capacidad de la conexion
Saludos
Y espero te ayude
Franco
Ps. Conoci de un caso que el envio tomaba hasta 24 horas y era
porque el servidor de correo tenia una conexion, medida en ancho de banda
muy pobre para la cantidad de correos que se queria enviar.
Recuerda que es un flujo.
Los servidores de correo estan configurados para manejar hasta miles
de conexiones instantaneas para el envio de grandes cantidades de correo
y en estos casos se vuelve muy importante el ancho de banda de la conexion
en la cual esta alojado el servidor de correo.

Muchisimas Gracias, franco, pues ya ves como son los clientes a veces no comprenden eso, en fin, pero que opinan amigos de mi formulario? estoy teniendo problemas con el por que al parecer tambien esta fallando y ya lo tenia aplicado en varias webs y no me explico el porque de que no llegan

Sobre el envio hice algunas pruebas poniendole hora en el momento de enviar por el formulario y pues si llegan aprox. en 30 a 40 min. a mi me parece buen tiempo, entiendo lo de los servidores pero pues el cliente a veces ni siquiera esta satisfecho por ello, algun sitio de hosting que me recomienden para la mejora de velocidad en email?

Gracias de antemano a todos
buen dia.
  #6 (permalink)  
Antiguo 26/07/2011, 12:29
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Como acelerar envio de email en PHP

http://sendgrid.com. Lo uso personalmente en mis proyectos por otras razones, pero va muy bien y rápido (usa la infraestructura en la nube de Amazon SES) Y además... es de pago! (no te dan una IP propia, y correo certificado con claves gratis ni en un universo paralelo)

Yo no sé de que protesta el cliente; a ver si cree que cuando mandas algo desde GMail o Hotmail va muchísimo más rápido.

Para que no le lleguen hay muchísimas razones. Por ejemplo,, Yahoo comenzó a rechazar a mi antigua compañía de correo porque enviaba muchos correos a la vez. Resultado? A los usuario ni siquiera les llegaba a la carpeta de Spam. También muchas veces el servicio del lado del que va a recibir no es del todo bueno, y deniega el acceso (el mensaje retorna al que lo ha enviado) o simplemente se toma más tiempo en procesarlo por los filtros anti-spam. Es decir, que enviar un e-mail no es abro una conexión y te lo envío; es que es posible que pase por cientos de máquinas distintas (literalmente, cientos, a veces menos, a veces más)
__________________
I (L) Google
  #7 (permalink)  
Antiguo 26/07/2011, 13:20
 
Fecha de Ingreso: julio-2011
Ubicación: Arauco
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Como acelerar envio de email en PHP

Yo, personalmente, uso hotmail, lo configuro a mi dominio con un registro MX y vuala.
Me llegan los mensajes rápidamente.. no he calculado porque... no se me da la gana.

Puedes usar hotmail con tu dominio accediendo a https://domains.live.com/Signup/SignupDomain.aspx

Si tienes problemas o no sabes como configurarlo, envíame un MP.

EDIT: Si lo deseas usar para formulario... mmm.. nose... pero a mi me funciona perfectamente... incluso en un hosting gratis.... y de pago....

Me llegan instantáneamente... en menos de 1 minuto.

Última edición por juanmunoz; 26/07/2011 a las 13:22 Razón: + info

Etiquetas: acelerar, email, envio, php, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:17.