Instalación y configuración de SMTP
Abre el .env archivo de la carpeta raíz del proyecto Laravel y configure la configuración de acuerdo con su cuenta de Gmail. Debe habilitar el "Aplicación menos segura”Opción de su cuenta de Gmail para enviar un correo electrónico usando el servidor SMTP de Gmail.
MAIL_MAILER = smtpMAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = YOUR_EMAIL_ADDRESS
MAIL_PASSWORD = YOUR_PASSWORD
MAIL_ENCRYPTION = ssl
***Nota:
Puede recibir el error de autenticación SMTP mientras envía correos electrónicos utilizando el servidor de cuentas SMTP Gmail. Abre el StreamBuffer.php archivo de la siguiente ubicación.
/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /lib / classes / Swift / Transport / StreamBuffer.php
Buscar y reemplazar línea 259 con la siguiente línea para autenticar el servidor SMTP de Gmail.
$ opciones ['ssl'] = matriz ('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => verdadero);
Envío de correos electrónicos mediante SMTP
Realice los siguientes pasos para enviar correo electrónico utilizando el formulario de contacto creando un controlador, vista y clase de correo.
Pasos:
Ejecute el siguiente comando desde la terminal para crear Controlador de correo electrónico para mostrar el formulario de contacto y enviar un correo electrónico usando la clase de correo de Laravel.
$ php artisan make: controlador EmailControllerEjecute el siguiente comando para crear una clase de correo llamada enviando correo electrónico. Esto creará la clase bajo el Aplicación \ Correo carpeta.
$ php artisan make: envío de correoCrea un archivo de vista llamado Enviar correo electrónico.espada.php con el siguiente código para mostrar el formulario de contacto.
Contáctenos
@if (recuento ($ errores)> 0)
- $ error
@foreach ($ errores-> all () como $ error)
@endforeach
@terminara si
@if ($ mensaje = Sesión :: get ('éxito'))
$ mensaje
@terminara si
Abierto Controlador de correo electrónico y modificar el código con el siguiente código. La Correo fachada y enviando correo electrónico las clases de correo se importan al principio del archivo. Aquí el índice() El método cargará el archivo de vista en el navegador para mostrar el formulario de contacto. Después de enviar el formulario, el enviar() se llamará al método. Este método validará el formulario utilizando las reglas de validación. La $ datos La matriz se utiliza para enviar los valores de la nombre y mensaje campos en el enviando correo electrónico clase. A continuación, el correo electrónico se envía mediante el Correo fachada. Debe establecer una dirección de correo electrónico válida del destinatario en el a() función antes de ejecutar el código. Si el correo electrónico se envía correctamente, se imprimirá un mensaje de éxito.
espacio de nombres App \ Http \ Controllers;use Illuminate \ Http \ Request;
use Illuminate \ Support \ Facades \ Mail;
use App \ Mail \ sendEmail;
clase EmailController extiende Controller
índice de función ()
vista de retorno ('emailsend');
función enviar (Solicitar $ solicitud)
$ this-> validar ($ solicitud, [
'nombre' => 'requerido',
'email' => 'obligatorio | email',
'mensaje' => 'requerido'
]);
$ datos = matriz (
'nombre' => $ solicitud-> nombre,
'mensaje' => $ solicitud-> mensaje
);
Correo :: a ('Dirección de correo electrónico del receptor') -> enviar (nuevo correo electrónico de envío ($ datos));
return back () -> with ('success', 'Gracias por contactarnos!');
Abre el enviando correo electrónico class y modifique el código con el siguiente código. El asunto del correo electrónico se define dentro del construir() método y el email_template La vista se utiliza para formatear el contenido del correo electrónico, creado en el siguiente paso. Los valores pasados del Controlador de correo electrónico se almacenan en el $ correo electrónico objeto y se pasan en el email_template vista.
espacio de nombres App \ Mail;use Illuminate \ Bus \ Queueable;
use Illuminate \ Contracts \ Queue \ ShouldQueue;
use Illuminate \ Mail \ Mailable;
use Illuminate \ Queue \ SerializesModels;
clase de envío de correo electrónico se extiende Mailable
use Queueable, SerializesModels;
/ **
* Crear una nueva instancia de mensaje.
*
* @return void
* /
correos electrónicos $ públicos;
función pública __construct ($ correos electrónicos)
$ this-> emails = $ emails;
/ **
* Construye el mensaje.s
*
* @return $ esto
* /
función pública build ()
return $ this-> subject ('Mensaje del visitante')
-> ver ('email_template')
-> con ('correos electrónicos', $ esto-> correos electrónicos);
Cree el archivo de vista de plantilla llamado email_template.espada.php con el siguiente código para enviar el correo electrónico formateado al remitente. Los valores pasados del enviando correo electrónico clase se utilizan en esta plantilla.
Hola,
estoy $ correos electrónicos ['nombre']
Mi consulta es sobre el siguiente tema:
$ correos electrónicos ['mensaje'].
Será útil que me responda pronto.Gracias.
Ahora, abre el web.php archivo y agregue el siguiente código de ruta para abrir el formulario de contacto y enviar el correo electrónico.
Route :: get ('/ contact', '[email protected]');Route :: post ('/ sendemail / send', '[correo electrónico protegido]');
Ejecute la siguiente URL desde el navegador para cargar el formulario de contacto.
http: // localhost / laravelpro / public / contact
Complete el formulario y haga clic en el Enviar mensaje para enviar el contenido del formulario al enviar() método del Controlador de correo electrónico clase.
Si el correo electrónico se envía correctamente, obtendrá el mensaje de éxito, como se muestra en la siguiente imagen.
Ahora, abra la cuenta de Gmail que utilizó para enviar un correo electrónico en el enviar() método del Controlador de correo electrónico clase. Si abre el correo electrónico, obtendrá el siguiente contenido de correo electrónico, generado mediante un email_template ver archivo.
Tutorial en video
Conclusión
Existen múltiples formas en el marco de Laravel para enviar un correo electrónico. La forma más simple y fácil de enviar correos electrónicos en Laravel se muestra en este tutorial. Si tiene una cuenta de Gmail, puede enviar fácilmente un correo electrónico siguiendo los pasos que se muestran en este tutorial. El servidor SMTP de Gmail se utiliza aquí para enviar un correo electrónico, y la tarea de envío de correo electrónico se prueba ejecutando el código desde el servidor local. Este tutorial muestra solo tareas de envío de correo electrónico en formato HTML. También puede realizar otras tareas, como archivos adjuntos, nombre del remitente, etc., mediante el uso de otros métodos de la Correo clase.