Pregunta:
Supongamos que tenemos un sitio WP en blanco y queremos configurar la configuración SMTP mediante programación en nuestro complemento o tema. ¿Cuál es la forma más sencilla de hacerlo sin cambiar los archivos principales?
Respuesta:
En primer lugar, si echamos un vistazo a la implementación de la función wp_mail
, veremos que esta función usa la clase PHPMailer
para enviar correos electrónicos. También pudimos notar que hay una función codificada llamada $phpmailer->IsMail();
, que establece el uso de la función mail()
PHP. Significa que no podemos usar la configuración SMTP con él. Tenemos que llamar isSMTP
función de PHPMailer
clase. Y también necesitamos configurar nuestra configuración SMTP.
Para lograrlo, necesitamos obtener acceso a la variable $phpmailer
. Y aquí llegamos a la acción phpmailer_init
que se llama antes de enviar un correo electrónico. Entonces podemos hacer lo que necesitamos escribiendo nuestro controlador de acciones:
add_action( 'phpmailer_init', 'wpse8170_phpmailer_init' );
function wpse8170_phpmailer_init( PHPMailer $phpmailer ) {
$phpmailer->Host = 'your.smtp.server.here';
$phpmailer->Port = 25; // could be different
$phpmailer->Username = 'your_username@example.com'; // if required
$phpmailer->Password = 'yourpassword'; // if required
$phpmailer->SMTPAuth = true; // if required
// $phpmailer->SMTPSecure = 'ssl'; // enable if required, 'tls' is another possible value
$phpmailer->IsSMTP();
}
Y eso es todo.