$from = "[email protected]";
$headers = "From:" . $from;
echo mail ("[email protected]" ,"testmailfunction" , "Oj",$headers);
Tengo problemas para enviar correos electrónicos en PHP. Me aparece un error: SMTP server response: 530 SMTP authentication is required
.
Tenía la impresión de que puede enviar un correo electrónico sin SMTP para verificar. Sé que este correo se filtrará, pero eso no importa en este momento.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
Esta es la configuración en el php.ini
archivo. ¿Cómo debo configurar SMTP? ¿Hay algún servidor SMTP que no requiera verificación o debo configurar un servidor yo mismo?
mail()
función integrada de PHP .'phpmailer_init'
gancho de acción. Es una forma conveniente de configurar WordPress para correo SMTP o Amazon SES (que admite conexiones SMTP).o, para más detalles, sigue leyendo .
fuente
php mail()
problemas de la función GoDaddy - 2017 - no debería tener que descargar PHPMailer o algún otro recurso de terceros - graciasPara los usuarios de Unix, mail () está usando el comando Sendmail para enviar correos electrónicos. En lugar de modificar la aplicación, puede cambiar el entorno. msmtp es un cliente SMTP con sintaxis CLI compatible con Sendmail, lo que significa que se puede usar en lugar de Sendmail. Solo requiere un pequeño cambio en su php.ini.
Entonces, incluso la función lowly mail () puede funcionar con la bondad SMTP. Es súper útil si está intentando conectar una aplicación existente a servicios de correo como sendgrid o mandrill sin modificar la aplicación.
fuente
mail()
a algo que admita SMTP. ¡Gracias!El problema es que la
mail()
función PHP tiene una funcionalidad muy limitada. Hay varias formas de enviar correo desde PHP.mail()
utiliza el servidor SMTP en su sistema. Hay al menos dos servidores que puede usar en Windows: hMailServer y xmail . Pasé varias horas configurándolos y levantándolos. El primero es más simple en mi opinión. En este momento, hMailServer está trabajando en Windows 7 x64.mail()
utiliza el servidor SMTP en una máquina remota o virtual con Linux. Por supuesto, el servicio de correo real como Gmail no permite la conexión directa sin credenciales o claves. Puede configurar una máquina virtual o usar una ubicada en su LAN. La mayoría de las distribuciones de Linux tienen un servidor de correo listo para usar. Configúralo y diviértete. Yo uso exim4 predeterminado en Debian 7 que escucha su interfaz LAN.No importa qué opción elija, le recomiendo que use una capa de abstracción. Puede usar la biblioteca PHP en su máquina de desarrollo con Windows y simplemente
mail()
funcionar en la máquina de producción con Linux. La capa de abstracción le permite intercambiar controladores de correo dependiendo del sistema en el que se esté ejecutando su aplicación. CrearMyMailer
clase abstracta o interfaz consend()
método abstracto . Heredar dos clasesMyPhpMailer
yMySwiftMailer
. Implemente elsend()
método de manera apropiada.fuente
Aquí hay una manera de hacerlo con PHP PEAR
Si usa Gmail SMTP, recuerde habilitar SMTP en su cuenta de Gmail, en la configuración
EDITAR: si no puede encontrar Mail.php en debian / ubuntu, puede instalar php-pear con
Luego instale la extensión de correo:
Entonces deberías poder cargarlo simplemente
require_once "Mail.php"
si no está ubicado aquí:/usr/share/php/Mail.php
fuente
Hay algunos servidores SMTP que funcionan sin autenticación, pero si el servidor requiere autenticación, no hay forma de evitarlo.
Las funciones de correo incorporadas de PHP son muy limitadas: la especificación del servidor SMTP solo es posible en Windows. En * nix,
mail()
usará los binarios del sistema operativo.Si desea enviar un correo electrónico a un servidor SMTP arbitrario en la red, considere usar una biblioteca como SwiftMailer . Eso le permitirá utilizar, por ejemplo, los servidores salientes de Google Mail.
fuente
En los casos en que aloja un sitio de Wordpress en Linux y tiene acceso al servidor, puede ahorrar algunos dolores de cabeza instalando msmtp que le permite enviar a través de smtp desde la función php mail () estándar. msmtp es una alternativa más simple a postfix que requiere un poco más de configuración.
Aquí están los pasos:
Instalar msmtp
Cree un nuevo archivo de configuración:
... con la siguiente información de configuración:
Debe reemplazar los datos de configuración representados por todo dentro de "<" y ">" (inclusive, elimínelos). Para host / nombre de usuario / contraseña, use sus credenciales normales para enviar correo a través de su proveedor de correo.
Dile a PHP que lo use
Agregue esta sola línea:
La documentación completa se puede encontrar aquí:
https://marlam.de/msmtp/
fuente