Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Enviando emails

23/25
Recursos

Para enviar correos electrónicos necesitamos usar algún servicio especializado en lugar de cuentas propias tipo gmail porque estas últimas tienden a bloquearse al detectar mucha actividad de envíos. mailtrap.io ofrece un servicio especial para probar cómo funciona el envío de correos durante el desarrollo de una aplicación.

  • Dentro de tu cuenta de mailtrap tendrás tus diferentes bandejas de entrada y al entrar a ellas encontrarás las credenciales necesarias para configurar la aplicación. Lo más común es usar credenciales SMTP.
  • En nuestro archivo .env encontraremos cómo configurar el envío de email. Necesitaremos el username y el password.
  • La configuración real se hace siempre dentro de la carpeta config en el archivo mail.php
  • PHP artisan nos provee el comando make:mail que se usa para crear una nueva clase de email. En Laravel los correos electrónicos son objetos que podemos trabajar con ciertas características e incluso darles un template para que sean rendereados.
  • Laravel nos ofrece un facade llamado Mail que nos ayuda a hacer el envío.

Aportes 26

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

ATENCION ayuda para errores en “.env” y "namespaces"

Informacion:
Me he dado cuenta que hay ciertos errores en los videos concernientes a los namespaces y puntualmente en este video se notan mucho así que voy proporcionarles la forma en como conseguir arreglar mis errores de ejecución
.
Error en el .env:
Estos errores se originan por el cache, puntualmente se generan por no limpiarlo así que después de modificar el .env asociado a tu configuración de correos recomiendo limpiarlo; mas abajo proporcionare todo el procedimiento.
Mi configuracion:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=1730ad736db1eb
MAIL_PASSWORD=905ce9aeb83e9d
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS[email protected]
MAIL_FROM_NAME="${APP_NAME}"

Comando:

php  artisan config:cache

.
Error en el namespaces:
Estos erres veo que se asocian a no llamar los namespaces adecuadamente, para este ejercicio anexe los siguientes:

#Para  ExpenseReportController.php
use App\Mail\SummaryReport;
use Illuminate\Support\Facades\Mail;

#Para  SummaryReport.php
use App\ExpenseReport;

Tuve el siguiente error al intentar enviar el email:
Expected response code 250 but got code “530”, with message "530 5.7.1 Authentication required "

lo solucione corriendo la siguiente sentencia en la consola para que me tome los nuevos valores del env:

php artisan config:cache

¡OJO! En varias ocasiones he notado que en el proceso del profe no se muestra la inclusión de archivos necesarios (use App\XXX) porque al parecer su editor de código (PhpStorm) hace ese trabajo por el.
En esta clase por ejemplo en ExpenseReportController.php es necesario incluir:

use App\ExpenseReport;
use App\Mail\SummaryReport;
use Illuminate\Support\Facades\Mail;

Para quienes tengan el error Swift_TransportException Cannot send message without a sender address, en el archivo .env deben agregar:

Cambiar

MAIL_FROM_ADDRESS=null

A:

MAIL_FROM_ADDRESS[email protected]

y luego limpiar cache

php artisan config:cache

La verdad es que cuando me inspiro, sólo un corte de suministro eléctrico puede detenerme.

Como recomendación que aplica a lo largo del curso, ya que no todos usamos el mismo IDE que usa el profesor Hector creo que sería conveniente que sean mostrados los “use” de las clases ya que PHPStorm las hace automáticamente.
Para esta clase en específico en el controlador de PHP ExpenseReportController.php no olvidar colocar al inicio de la clase los siguientes “use”:

use App\Mail\SummaryReport;
use Illuminate\Support\Facades\Mail;

En lo personal me ha encantado este tema de los correos y sus plantillas para ser enviados desde Laravel… con PHP en condiciones nativas, siempre ha sido un problema darle configuración al formato con el que se debe mostrar un correo… Ahora veo que con Laravel, el asunto no es tan complejo!!! (Excepto para visualizar un correo con imágenes, ahí se debe tener mucho cuidado con la ubicación de las mismas)

Tiene que agregar esto:

use Illuminate\Support\Facades\Mail;
use App\Mail\SummaryReport;

ALGUIEN ME AYUDA?
Argument 1 passed to App\Mail\SumaryPeople::__construct() must be an instance of App\Mail\People, instance of App\People given, called in C:\xampp\htdocs\janaq-project\app\Http\Controllers\PeopleController.php on line 166

No entiendo porque sale este error, he seguido el curso al pie de la letra…alguna sugerencia para resolverlo?

¿Que tendría que cambiar o configurar pata enviar a correos como gmail o hotmail usando un hosting tradicional con Cpanel y eso ?

Hola buenas, tengo una duda. Como puedo cambiar nombre “email from”? Modifique los variable globales en “config/mail.php”,

pero quiero personalizar el titulo de correo, con los variables globales, me manda con el titulo de la clase Mail.

Y cuando modifico el build, si pudo personalizar el titulo de correo, pero el “email from name” me muestra “info”, no me muestra “kora.com”, como debo hacer para lograr esto?

Gracias!!

'from' => [
        'address'=> env('MAIL_FROM_ADDRESS', '[email protected]'),
        'name' => env('MAIL_FROM_NAME', 'kora.com'),
    ],```

 
 

 public function build()
    {
        
        return $this->from('[email protected]', 'kora.com')
        ->subject('Solicitud de registro .')
        ->view('emails.bienvenidoUser')->with(['name' => $this->name]);
    
    }



Bueno el envió de correos y el uso de plantillas blade para dar formato a los correos y personalizarlos Excelente

Muy interesante la clase para enviar email, les comparto la documentación actualizada de Laravel, por si necesitan enviar adjuntos, plantillas y demás:
https://laravel.com/docs/7.x/mail

me sale este error, saben porque puede ser?
Swift_TransportException
Cannot send message without a sender address

Siempre q algo me falla desde laravel uso este hermoso comando q les comparto para limpiar hasta la tuza q te dejo tu ex

  • php artisan config:cache && php artisan cache:clear && php artisan view:clear && composer dump-autoload

en el SummaryReport.php, coloquen esto:

public function __construct($expenseReport){
        $this->expenseReport = $expenseReport;
    }

De nada

Me surgió este error “Trying to get property ‘email’ of non-object” en curso-laravel\vendor\laravel\framework\src\Illuminate\Mail\Mailable.php
¿Alguien sabe como se soluciona?

Me salió un error al dar Send Mail:

“Swift Cannot send message without a sender address”

Al parecer debes configurar en el archivo App/Config/mail.php lo siguiente:

‘from’ => [‘address’ => ‘[email protected]’, ‘name’ => ‘myname’],

donde:
[email protected] es el correo emisor y
myname es el nombre del emisor.

me dio el siguiente error

Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to smtp.mailtrap.io:2525 (Connection refused)

Tengo un duda, al final del video ya hice todo lo que explica el profe Hector pero los correos no me llegan al correo que pongo en el input, todos se quedan en la bandeja de mailtrap, saben como puedo hacer para que me lleguen esos correos?

Swift_TransportException
Cannot send message without a sender address

Saben como puedo solucionarlo?

cual es la diferencia entre model binding y type hinting?¿??¿¿

Mailtrap es un servicio muy bueno para probar el envío de mails y sin duda Laravel facilita mucho el envío de los mails también, y el hecho de que se puedan maquetar con Blade es excelente!

En la clase Mail es importante definir el atributo con el cual pasaremos del constructor al método del envío de mail nuestros datos, y así como se define esa propiedad, también podemos definir una propiedad llamada $subject en dado caso de que quieras modificar el asunto del correo electrónico:D

¿A alguien más le dio este error?