Comunidad de diseño web y desarrollo en internet online

Problema servidor envio formularios

Citar            
MensajeEscrito el 19 Jun 2012 07:58 am
Ante todo un saludo a todos.
Tengo un problemilla y es que mi web no puede enviar los formularios.
No se si este es el sitio adecuado para postear este tema, si no es así decidmelo y lo posteare ahí, si es así decidmelo tambien y lo posteare aqui.

Gracias de antemano.

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jul 2012 01:53 pm
Da más detalles

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 09 Jul 2012 08:24 am
Perdonad pero he estado un poco liado.
Bueno lo que decia, tengo tres server con ubuntu y ninguno me envia los forms.
Esto es lo ultimo que me queda para acabar los servers y dejarlos listos.

Tengo dos o tres dilemas.

1) Me recomendaron que para comenzar y que me enviara los form, usara la clase "phpmailer", pues bien, lo he hecho con mi cuenta de gmail y me ha funcionado correctamente. El problema es que tengo un dominio y un correo "info@midominio1&1.com y todos los correos me los envia con mi cuenta de gmail no la de 1&1.
Lo he intentado con 1&1 y no he podido, para que por lomenos me envie los correos con email del dominio y el smtp de 1&1.
Tengo los archivos "class.smtp.php" y "class.phpmailer.php" modificados para gmail y luego "contacto.php" y "enviar_contacto.php", los puedo poner aqui si quereis, pero como lo hago para 1&1, he visto varias cosas pero ninguna me ha funcionado, me dicen cambiando esto: "$mail->IsSMTP()"; por esto: "$mail->IsSendmai()" pero como dije no me va.

2) Bueno la otra opcion es montar un mailserver, tengo dos manuales buenos pero necesitaria algo de ayuda, estos son.

1) Instalar paquetes:
 bind9
 sendmail
 sendmail-cf
 dovecot-common
 dovecot-imapd
 dovecot-pop3d
 sasl2-bin
 squirrelmail
 squirrelmail-locales

2) Instalar paquetes requeridos:
apt-get update
apt-get upgrade
apt-get install postfix postfix-mysql postfix-doc mysql-client
mysql-server dovecot-common dovecot-imapd dovecot-pop3d postfix
libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin
libpam-mysql openssl telnet mailutils

Espero consejos, y de antemano muchisimas gracias por tus respuestas.
Un saludo: Manyblue

Por manyblue

19 de clabLevel



 



Ultima edición por manyblue el 09 Jul 2012 08:31 am, editado 1 vez

msie
Citar            
MensajeEscrito el 09 Jul 2012 08:27 am
PD: En los tres servers tengo instalado sendmail en /usr/sbin/sendmail y ademas mailutils.

Un saludo: Manyblue

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Jul 2012 05:15 pm
pero no entiendo, el dominio del email lo darias vos con un servidor de emails instalado en tus maquinas o lo tenes por una cuenta de hosting con ese dominio .com?
si lo tenes por una cuenta de hosting tenes que ver que las configuraciones esten bien, aveces esta configurado para mail.jngkdfj.com en vez de smtp.dfjg.com.
y si en esos servers vas a hostear el sitio y apuntar el dominio, si tenes que instalarte un server de emails, y configurar las cuentas.

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

chrome
Citar            
MensajeEscrito el 09 Jul 2012 06:41 pm
A ver, no me he explicado bien, perdona mi ignorancia.

Tengo 5 dominios en 1&1 y 32 en arsys, todos los dominios estan redirigidos a mis servers con Ubuntu unos a uno y otros a otros.
Con los dominios tengo creados sus correos correspondientes, por el momento no redireccionados hacia mis servidores. Sabes que por cada dominio tendre hasta 10 correos diferentes.
Hasta aqui OK ??

En todos los servers tengo instalodo LAMP Server y dentro de apache varios virtual host en cada server.

Todo me corre de maravilla, mi unico problema y final es que las webs no me pueden enviar formularios, aun teniendo sendmail instalado y el patch en mi php.ini bien puesto "/usr/sbin/sendmail i- -f "

En otros sitios me han recomendado que comienze usando la clase de php "phpmailer", pues bien la he usado con mi cuenta de gmail y todo me corre perfecto y ya puedo enviar los formularios. El problema ahora es que el email que me lo envia es mi gmail no el de mi dominio por lo que ahora debere configurar "phpmailer" para 1&1 y Arsys. Arsys todavia no me he puesto, 1&1 si pero no puedo enviar conectar con su smtp.

Lo del servidor de correos lo dejamos para despues

Muchas gracias de antemano

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Jul 2012 02:50 am
Claro, porque si el dominio redirige a tu servidor, el server de correo tiene que estar instalado en ese servidor...
Tenes que instalar un servidor de correo en ubuntu y configurar las cuentas y los puertos, te funciona con gmail porque efectivamente te logras conectar a su server de emails, pero en tu cuenta no, porque te redirige a tu servidor con ubuntu y no tenes un server de emails instalado o no esta bien configurado.
Te paso un link para que mires, esta escrito para debian pero te va a andar bien y esta muy explicado, espero te sirva
http://www.cav.jovenclub.cu/comunidad/?q=node/556

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

chrome
Citar            
MensajeEscrito el 10 Jul 2012 07:39 am
Muchisimas gracias por tu respusta, pero no estoy deacuerdo con tigo.
Para enviar los correos o formularios web, no es necesario tener un mailserver completo.

La forma mas facil sin complicarte la vida es usando la clase de php "phpmailer", ya lo hice y funciono, como te dije el problema es que el email de mi gmail aparece. Esto es debido a que he usado solo dos archivos de phpmailer modificados que vi en internet. Funciono y funciona.

Creo que me he equivocado al hacer esto pues en otros manuales me dicen que no toque nada de "class.smtp.php" y "class.phpmailer.php" que todo se hacer en el propio archivo php que envia el correo "enviar_contacto.php"

Ejemplo de "enviar_correo.php" que he usado:

Código PHP :

 <?php
// Adquirimos las variables del formulario y mas
$dia=date("d.m.Y");
$hora=date("H:i:s");
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$telefono = $_POST['telefono'];
$texto = $_POST['texto'];
$mensaje = "
 El mensaje se a enviado el dia: $dia a las: $hora <br><br> 
----------------------------------------------------------------------------<br><br>
 Nombre: $nombre <br><br>
 Email:  $email <br><br>
 Telefono:  $telefono <br><br>
 Asunto:  $asunto <br><br>
 Texto:  $texto <br><br>
 ----------------------------------------------------------------------------<br><br>
 ";
    require("class.phpmailer.php"); 
//------------------------------------------------------
    $correo_destino="[email protected]"; //a que correo llega
    $nombre_destino="[email protected]"; //nombre de quien recibe
    $correo_emisor="[email protected]"; //tu correo
    $nombre_emisor="FORMULARIO DE CONTACTO"; //tu nombre
    $contrasena="mipass"; //contraseña de tu usuario
//--------------------------------------------------------
    $mail = new PHPMailer();
    $mail->IsSMTP(); // Envia el correo via SMTP
    $mail->SMTPAuth = true; // Enciende la autenticacion SMTP
    $mail->Username = $correo_emisor; // Usuario SMTP
    $mail->Password = $contrasena; // Contrasena SMTP    
    $mail->From = $correo_emisor;
    $mail->FromName = $nombre_emisor; //Nombre del que envia el correo
    $mail->AddAddress($correo_destino,$nombre_destino);
    $mail->AddReplyTo($correo_emisor,$nombre_emisor);
    $mail->WordWrap = 50; // Word wrap
    $mail->IsHTML(true); // Enviar como HTML
    $mail->Subject = "FORMULARIO DE CONTACTO"; //Asunto
    $mail->Body = $mensaje; //Cuerpo en HMTL
    $mail->AltBody = "
 El mensaje se a enviado el dia: $dia a las: $hora <br><br> 
----------------------------------------------------------------------------<br><br>
 Nombre: $nombre <br><br>
 Email:  $email <br><br>
 Telefono:  $telefono <br><br>
 Asunto:  $asunto <br><br>
 Texto:  $texto <br><br>
 ----------------------------------------------------------------------------<br><br>
 "; //Cuerpo en Texto plano
    if(!$mail->Send()){
      echo "Error: " . $mail->ErrorInfo;
    }else{
      echo "OK, SENDMAIL";
    }
?> 


Como veras no aparece en este archivo el smtp de gmail que es "smtp.gmail.com", esto aparece en "class.smtp.php" cambiando host y port.

Me han dicho que no lo haga asi, que coja y haga esto:

1) Descargar "phpmailer" crear en un directorio que se llame por ejemplo "phpmailer" dentro poner estos archivos que vienen en "phpmailer" sin tocar: class.smtp.php, clas.phpmailer.php, class.pop3.php y el directorio language.

2) el enviar_contacto.php hacerlo así:

Código PHP :

<?php
// Adquirimos las variables del formulario y mas
$dia=date("d.m.Y");
$hora=date("H:i:s");
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$telefono = $_POST['telefono'];
$texto = $_POST['texto'];
$mensaje = "
 El mensaje se a enviado el dia: $dia a las: $hora <br><br> 
----------------------------------------------------------------------------<br><br>
 Nombre: $nombre <br><br>
 Email:  $email <br><br>
 Telefono:  $telefono <br><br>
 Asunto:  $asunto <br><br>
 Texto:  $texto <br><br>
 ----------------------------------------------------------------------------<br><br>
 ";
 
   require("phpmailer/class.phpmailer.php"); 
   
   $mail = new PHPMailer ();
   $mail -> IsSMTP();
   $mail -> SMTPAuth = true;
   $mail -> port = 465;
   $mail -> host = 'smtp.gmail.com';
   $mail -> UserName = '[email protected]';
   $mail -> Password = '***********';
   $mail -> SetFrom = '[email protected]' , 'midominio.com';
   
   $mail -> AddAdress ('[email protected]' , 'midominio.com');
   $mail -> IsHTML(true);
   $mail -> Subject = 'FORMULARIO DE CONTACTO DE MIDOMINIO.COM';
   $mail -> Body = $mensaje;
   $mail->AltBody = "
 El mensaje se a enviado el dia: $dia a las: $hora <br><br> 
----------------------------------------------------------------------------<br><br>
 Nombre: $nombre <br><br>
 Email:  $email <br><br>
 Telefono:  $telefono <br><br>
 Asunto:  $asunto <br><br>
 Texto:  $texto <br><br>
 ----------------------------------------------------------------------------<br><br>
 ";
 
 if(!$mail->Send()){
      echo "Error: " . $mail->ErrorInfo;
    }else{
      echo "OK, SENDMAIL";
    }
?> 


Como ves aqui si aparece host y port ya que no se modifico class.smtp.php.
No lo he probado asi pero me dicen que debe funcionar y ahora ya no te dice que el email remitente es mi gamil ahora dice que es:

$mail -> SetFrom = '[email protected]' , 'midominio.com';

Para 1&1 me han dicho que como son especiales jajajajaja debo cambiar esta linea:

$mail -> IsSMTP();

por esta otra:

$mail -> IsSendmail();

Dejamos para despues lo del mailserver (para discutir unas cosas sobre programas a usar) pues por el momento solo quiero enviar, solo enviar.

Un cordial saludo y muchas gracias de ante mano: Manyblue

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Jul 2012 12:17 pm
A ver, en lo de phpmailer estamos de acuerdo, en esa clase configuras todo, pero lo que estas haciendo al poner gmail es conectarte al servidor de emails propio de gmail, si pones tu dominio no te lo va a mandar porque no tenes ningún servidor de correo con ese dominio....

$mail -> host = 'smtp.gmail.com';
Aca estas especificando que los correos van a ser enviados por gmail

Para que te funcione con 1&1 deberias configurar tu propio servidor de correo y seria

mail.1&1.com
smtp.1&1.com
pop3.1&1.com

Si usas gmail estas enviando con ese servidor y con ese dominio, no con 1&1

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 10 Jul 2012 12:40 pm
Gracias.

Eso lo entiendo perfectamente por eso quiero usar 1&1 ahi tengo 5 dominios con sus emails, luego Arsys con los restantes dominios.

Como te dije para gmail he modificado el archivos de phpmailer class.smtp.php
He modificado class.smtp.php en host y port para 1&1 y nada, he probado hacer smtp = smtp.1&1.com, smtp.1and1.com, smtp.1&1.es, smtp.1and1.es port = 587 y nada de nada.
Tambien el charset a UTF-8


Un saludo

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Jul 2012 11:15 pm
ok, pero la clase class.smtp.php no tenes que modificarla, lo tenes que modificar en tu php
$mail = new PHPMailer ();
$mail -> IsSMTP();
$mail -> SMTPAuth = true;
$mail -> port = 465;
$mail -> host = 'smtp.gmail.com'; aca iria smtp.arsys.com
$mail -> UserName = '[email protected]'; aca el usuario ej [email protected]
$mail -> Password = '***********'; aca tu pass

ahora, una pregunta, desde el webmail podes enviar correos con arsys y 1&1???

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

chrome
Citar            
MensajeEscrito el 11 Jul 2012 08:44 am
Vamos a ver, creo que sigues sin cogerme o yo me explico mal.
Con gmail no tengo problemas hermano esta solucionado, solo modifique host y port en class.smtp.php y en class.phpmailer.php solo el charset que estava en iso y lo deje en utf-8, no modifique nada mas OK.

El problema se me presenta con 1&1 solamente, con arsys ya hable con ellos y probe no hay problemas OK.

He visto varias cosas sobre 1&1 una dice que no se puede empleae isSMTP() sini isSendMail, otra que el host no se pone con el nombre si no su ip ???? muchas cosas asi.

NOTA:

Parece ser que en 1&1, la plataforma que gestiona el envío de corros por smtp (sendmail) se encuentra en la ubicación predeterminada (/usr/sbin/sendmail/), por lo que no se requiere ningún cambio en la configuración.

Y el problema se resuelve únicamente remplazando esta línea:

$mail->isSmtp(); por $mail->isSendMail();

Conclusión: 1and1 probablemente tiene cerrados los puertos smtp saliente en sus servidores de alojamiento compartido. Por lo tanto, si trabajas con servidores 1&1 y necesitas utilizar la librería PHPMailer, no utilices el modo smtp nunca más.

Os dejo un ejemplo completo de cómo quedaría el codigo

Código PHP :

include($url_de_la_clase."class.phpmailer.php");
 
$de = “[email protected]”;
 $de_cc = "Web midominio.es";
 $dir_destino = $_POST[“email”];;
 $asunto = "Email de contacto";
 $contenido = "Ejemplo de un envío de correo con un servidor 1&1";
 
//creo el objeto phpmailer(); que es el que va a enviar el correo
 $mail = new phpmailer();
 $mail -> From = $de;
 $mail -> FromName = $de_cc; 
$mail -> AddAddress ($dir_destino);
 $mail -> Subject = $asunto;
 
//si hubiera archives adjuntos
 if(isset($_FILES["archivo"])) 
{
 $tmp_name = $_FILES["archivo"]["tmp_name"];
 $name = $_FILES["archivo"]["name"];
 $archivo_size = $_FILES['archivo']['size'];
 $contenido .= "Archivo Adjunto: ".$name;
 $mail -> AddAttachment ($tmp_name, $name);
 }
 $mail -> Body = $contenido;
 $mail -> IsHTML (true);
 $mail -> isSendMail(); //esta es la línea que hace que funcione el correo con servidores 1&1.
 if (!$mail -> Send ())
 echo ”ERROR al enviar el correo: ”. $mail->ErrorInfo;
 else
 echo “Correo enviado correctamente.”;


He probado y no me va, ademas yo no uso 1&1.com si no 1&1.es es donde estan mis dominios.

Un saludo y muchas gracias como siempre por tu atencion.

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 11 Jul 2012 09:17 am
Bueno, confirmado por el servicio tecnico de Arsys.
No tendreis problemas en usar el smtp de vuestra cuenta para usar la clase phpmailer, no hace falta que tengas parking con ellos solo comprar el dominio y crear el correo.

Ademas te digo que hay algunos correos redirigidos a un mailserver y tambien se puede hacer.

Hay otra empresa de hosting en españa que a mi me gusta mucho OVH y tambien se puede usar la clase php`mailer sin ningun problema y no como en 1&1.

Un saludo

Por manyblue

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 11 Jul 2012 12:10 pm
Bueno, me alegro que te hayan dado una respuesta.
Saludos!

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.