Pregunta

My ISP La cuenta requiere que envíe un nombre de usuario y contraseña para llamadas salientes. SMTP correo.

Como lo consigo PHP para usar esto al ejecutar php.mail()? El php.ini El archivo solo contiene entradas para el servidor. (SMTP= ) y From: (sendmail_from= ).

¿Fue útil?

Solución

PHP mail() El comando no admite la autenticación.Sus opciones:

  1. PHPMailer- Tutorial
  2. PERA - Tutorial
  3. Funciones personalizadas: vea varias soluciones en la sección de notas: http://php.net/manual/en/ref.mail.php

Otros consejos

Aplico los siguientes detalles en el archivo php.ini.Funciona bien.

SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com

Estos detalles son los mismos que en la configuración de Outlook.

Usar Sendmail falso para Windows para enviar correo.

  1. Crea una carpeta llamada sendmail en C:\wamp\.
  2. Extraiga estos 4 archivos en sendmail carpeta: sendmail.exe, libeay32.dll, ssleay32.dll y sendmail.ini.
  3. Luego configura C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. Lo anterior funcionará con una cuenta de Gmail.Y luego configura php.ini:

    sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

  2. Ahora reinicie Apache y eso es básicamente todo lo que necesita hacer.

PHP hace ¡tenga autenticación en el comando de correo!

Lo siguiente me funciona en WAMPSERVER (Windows, PHP 5.2.17)

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

Prefiero el PHPMailer herramienta ya que no requiere PEAR.Pero de cualquier manera, tienes un malentendido:no desea una configuración de todo el servidor PHP para el usuario y la contraseña SMTP.Esta debería ser una configuración por aplicación (o por página).Si desea utilizar la misma cuenta en diferentes páginas PHP, agréguela a algún tipo de archivo settings.php.

Después de trabajar todo el día en esto, finalmente encontré una solución.Así es como envío desde Windows XP con WAMP.

  1. Utilice el servidor SMTP de Google.Probablemente necesites una cuenta.
  2. Descargar e instalar Correo falso.Lo acabo de descargar, lo descomprimí y lo puse en la carpeta WAMP.
  3. Cree un archivo PHP de prueba.Vea abajo.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. Actualice su archivo php.ini y su archivo sendmail.ini (sendmail.ini está en la carpeta sendmail).
  2. Verifique el archivo error.log en la carpeta sendmail que acaba de crear si no funciona.

Referencia:

  1. Instale Postfix (compatible con Sendmail).
  2. Editar /etc/postfix/main.cf leer:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. Crear /etc/postfix/sasl_passwd, ingresar:
smtp.server.net username:password
  1. Tipo # /usr/sbin/postmap sasl_passwd

  2. Entonces corre: service postfix reload

Ahora PHP ejecutará el correo como de costumbre con el sendmail -t -i comando y Postfix lo interceptará y lo transmitirá a su servidor SMTP que proporcionó.

Utilice Mail::factory en el paquete Mail PEAR. Ejemplo.

Estas respuestas están desactualizadas y depreciadas.Mejores prácticas..

composer require phpmailer/phpmailer

El siguiente en su archivo sendmail.php solo requiere lo siguiente

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");

//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Esto se puede configurar como quieras.

Considerando una respuesta en esta pregunta, En PHP 4, el paquete PEAR Mail normalmente ya está instalado, y este tutorial realmente simple le muestra las pocas líneas de código que necesita agregar a su archivo php. http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  1. Instalar lo último hMailServidor."Ejecute hMailServer Administrator" en el último paso.
  2. Conéctese a "localhost".
  3. "Agregar dominio..."
  4. Establecer "127.0.0.1". Como "dominio", haga clic en "Guardar".
  5. "Configuración" > "Protocolos" > "SMTP" > "Entrega de correo electrónico"
  6. Establezca "localhost" como "nombre de host local", proporcione sus datos en la sección "Retransmisor SMTP", clic en Guardar".
  7. "Configuración" > "Avanzado" > "Rangos de IP" > "Mi PC"
  8. Desactive la casilla de verificación "Direcciones de correo electrónico externas a externas" en el grupo "Requerir autenticación SMTP".
  9. Si ha modificado php.ini, reescriba estos 3 valores:

"SMTP = servidor local",

"smtp_port = 25",

"; sendmail_path = ".

Crédito: ¿Cómo configurar WAMP (localhost) para enviar correo electrónico usando Gmail?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top