mail - smtp php
php.ini y SMTP=- cómo se transfiere el nombre de usuario y la contraseña (11)
- Instalar Postfix (compatible con Sendmail).
- Edite
/etc/postfix/main.cf
para 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
- Crea
/etc/postfix/sasl_passwd
, ingresa:
smtp.server.net username:password
Escriba #
/usr/sbin/postmap sasl_passwd
A continuación, ejecute:
service postfix reload
Ahora PHP ejecutará el correo como de costumbre con el comando sendmail -t -i
y Postfix lo interceptará y lo retransmitirá a su servidor SMTP que usted proporcionó.
My ISP
cuenta My ISP
requiere que envíe un nombre de usuario y una contraseña para SMTP
correo SMTP
saliente.
¿Cómo hago para que PHP
use al ejecutar php.mail()?
El archivo php.ini
solo contiene entradas para el servidor (SMTP= )
y From: (sendmail_from= )
.
- Instale el último hMailServer . "Ejecute el administrador de hMailServer" en el último paso.
- Conéctese a "localhost".
- "Agregar dominio ..."
- Establecer "127.0.0.1." como el "Dominio", haga clic en "Guardar".
- "Configuración"> "Protocolos"> "SMTP"> "Entrega de correo electrónico"
- Establezca "localhost" como "Nombre de host local", proporcione sus datos en la sección "SMTP Relayer" , haga clic en "Guardar".
- "Configuración"> "Avanzado"> "Rangos de IP"> "Mi PC"
- Deshabilite la casilla de verificación "Direcciones de correo electrónico externas a externas" en el grupo "Solicitar autenticación SMTP".
- Si ha modificado php.ini, vuelva a escribir estos 3 valores:
"SMTP = localhost",
"smtp_port = 25",
" ; sendmail_path =".
Crédito: ¿Cómo configurar WAMP (localhost) para enviar correos electrónicos usando Gmail?
Aplico los siguientes detalles en el archivo php.ini. funciona bien
SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]
Estos detalles son los mismos que en la configuración de Outlook.
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.
- Use el servidor SMTP de Google. Probablemente necesites una cuenta.
- Descargue e instale Fake Sendmail . Acabo de descargarlo, descomprimirlo y ponerlo en la carpeta WAMP.
- Crea un archivo PHP de prueba. Vea abajo.
<?php $message = "test message body"; $result = mail(''[email protected]'', ''message subject'', $message); echo "result: $result"; ?>
- Actualice su archivo php.ini y su archivo sendmail.ini (sendmail.ini está en la carpeta sendmail).
- Compruebe el archivo error.log en la carpeta sendmail que acaba de crear si no funciona.
Referencia:
El comando PHP mail()
no admite la autenticación. Sus opciones:
- PHPMailer - Tutorial
- PEAR - Tutorial
- Funciones personalizadas: consulte diversas soluciones en la sección de notas: http://php.net/manual/en/ref.mail.php
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 = "[email protected]";
$mail->FromName = "Full Name";
//To address and name
$mail->addAddress("[email protected]", "Recepient Name");
$mail->addAddress("[email protected]"); //Recipient name is optional
//Address to which recipient will reply
$mail->addReplyTo("[email protected]", "Reply");
//CC and BCC
$mail->addCC("[email protected]");
$mail->addBCC("[email protected]");
//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 ...
PHP tiene autenticación en el comando de correo!
Lo siguiente funciona para mí 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 = [email protected]
Prefiero la herramienta PHPMailer ya que no requiere PEAR. Pero de cualquier manera, tiene un malentendido: no desea una configuración de todo el servidor PHP para el usuario SMTP y la contraseña. Esto debería ser una configuración por aplicación (o por página). Si desea usar la misma cuenta en diferentes páginas PHP, agréguela a algún tipo de archivo settings.php.
Teniendo en cuenta una respuesta en esta pregunta , en PHP 4 el paquete PEAR Mail 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
Use Mail :: factory en el paquete Mail PEAR. Tutorial
Utilice Fake sendmail para Windows para enviar correo.
- Crea una carpeta llamada
sendmail
enC:/wamp/
. - Extraiga estos 4 archivos en la carpeta
sendmail.exe
:sendmail.exe
,libeay32.dll
,ssleay32.dll
ysendmail.ini
. - A continuación, configure
C:/wamp/sendmail/sendmail.ini
:
smtp_server=smtp.gmail.com smtp_port=465 [email protected] auth_password=your_password
Lo anterior funcionará en contra de una cuenta de Gmail. Y luego configure php.ini:
sendmail_path = "C: / wamp / sendmail / sendmail.exe -t"
Ahora, reinicie Apache, y eso es básicamente todo lo que necesita hacer.