2011-05-23 7 views
8

He estado buscando una respuesta e intenté varias cosas con este problema.Configuración de los detalles de SMTP para la función de correo de php()

Mi secuencia de comandos funciona bien en mi servidor web pero cuando se mueve a otro servidor dedicado el correo nunca se entrega. Ahora necesito configurar el servidor SMTP pero no lo hago bien.

Uso de aplicaciones de Gmail por cierto. Así es como se ve el código.

<?php 

if(!$_POST) exit; 

$email = $_POST['email']; 


//$error[] = preg_match('/\b[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS'; 
if(!eregi("@",$email)){ 
    $error.="Invalid email address entered"; 
    $errors=1; 
} 
if($errors==1) echo $error; 
else{ 
    $values = array ('name','email','telephone','message'); 
    $required = array('name','email','telephone','message'); 

    $your_email = "[email protected]"; 
    $email_subject = "New Messag: ".$_POST['subject']; 
    $email_content = "New message:\n"; 

    foreach($values as $key => $value){ 
     if(in_array($value,$required)){ 
     if ($key != 'subject' && $key != 'telephone') { 
      if(empty($_POST[$value])) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; } 
     } 
     $email_content .= $value.': '.$_POST[$value]."\n"; 
     } 
    } 

    if(@mail($your_email,$email_subject,$email_content)) { 
     echo 'Message sent!'; 
    } else { 
     echo 'ERROR!'; 
    } 
} 

$mail->Mailer = "smtp"; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465; 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // SMTP username 
$mail->Password = "password"; // SMTP password 

?> 

Entonces, ¿cómo configuro la configuración de SMTP?

+2

echa un vistazo a esto una alma de trabajo perfecta http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page –

+0

) duplicate posible – Harsh

Respuesta

1

Revise su php.ini, puede establecer estos valores allí.

Aquí está la descripción en el manual de PHP: http://php.net/manual/en/mail.configuration.php

Si desea utilizar varios servidores SMTP diferentes en su aplicación, recomiendo el uso de un "grande" marco de correo, e-h Swiftmailer

+0

Tengo la configuración correcta allí. Pero aún así trabajo dossent. Es una forma simple, así que creo que la función de correo php es la mejor manera de hacerlo esta vez. – inpbox

+0

Hay algunos detalles involucrados en los handshakes SMTP (con/sin autenticación y tal), el correo php no los conoce a todos. Para tareas simples, el correo php incorporado es una forma buena y rápida de resolver problemas, pero tenga en cuenta que tiene sus límites. – Bjoern

+0

Muy bien, pero en mi código en las últimas líneas he establecido la configuración que requiere google. Pero dado que estoy usando un servidor smtp externo para enviar correos a la dirección de correo electrónico dada, ¿necesito cambiar algo en php.ini quizás? – inpbox

6

Bajo Windows solamente: Usted puede tratar de usar ini_set() functionDocs para la configuración SMTPDocs y smtp_portDocs:

ini_set('SMTP', 'mysmtphost'); 
ini_set('smtp_port', 25); 
+0

cómo configurar el nombre de usuario, la contraseña y el tipo de encriptación, –

+0

Perfecto. Funciona bien ... Gracias por tu publicación. – Poorna

0

Trate de su servidor dedicado a telnet a smtp.gmail.com en el puerto 465. Puede ser bloqueado por su proveedor de internet

Cuestiones relacionadas