SMTP настройка и конфигуриране
Отвори .env файл от основната папка на проекта Laravel и настройте конфигурацията според вашия акаунт в Gmail. Трябва да активирате „По-малко сигурно приложение”Опция на вашия акаунт в Gmail за изпращане на имейл чрез SMTP сървъра на Gmail.
MAIL_MAILER = smtpMAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = ВАШАТА_ЕМАИЛНА АДРЕСА
MAIL_PASSWORD = ВАШАТА_ПАРА
MAIL_ENCRYPTION = ssl
***Забележка:
Може да получите грешка при SMTP удостоверяване, докато изпращате имейли, използвайки SMTP сървъра за акаунти в Gmail. Отвори StreamBuffer.php файл от следното местоположение.
/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /lib / classes / Swift / Transport / StreamBuffer.php
Намерете и заменете реда 259 със следния ред за удостоверяване на SMTP сървъра на Gmail.
$ options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => true);
Изпращане на имейли чрез SMTP
Изпълнете следните стъпки, за да изпратите имейл чрез формата за контакт, като създадете контролер, изглед и клас на поща.
Стъпки:
Изпълнете следната команда от терминала, за да създадете EmailController за да покажете формуляра за контакт и да изпратите имейл с помощта на клас поща Laravel.
$ php artisan make: контролер EmailControllerИзпълнете следната команда, за да създадете имейл клас с име изпращане на имейл. Това ще създаде класа под App \ Mail папка.
$ php artisan make: изпращане на пощаEmailСъздайте файл с име на име изпращане на имейл.острие.php със следния код за показване на формата за контакт.
Свържете се с нас
@if (брой ($ грешки)> 0)
- $ грешка
@foreach ($ грешки-> всички () като $ грешка)
@endforeach
@endif
@if ($ message = Session :: get ('успех'))
$ съобщение
@endif
Отворете EmailController и модифицирайте кода със следния код. The Поща фасада и изпращане на имейл пощенските класове се импортират в началото на файла. Ето, индекс () метод ще зареди файла за преглед в браузъра, за да покаже формата за контакт. След подаване на формуляра, изпрати () метод ще бъде извикан. Този метод ще валидира формуляра, като използва правилата за валидиране. The $ данни масив се използва за изпращане на стойностите на име и съобщение полета в изпращане на имейл клас. След това имейлът се изпраща с помощта на Поща фасада. Трябва да зададете валиден имейл адрес на получателя в да се() функция преди изпълнение на кода. Ако имейлът се изпраща успешно, ще се отпечата съобщение за успех.
пространство от имена App \ Http \ Controllers;използвайте Illuminate \ Http \ Request;
използвайте Illuminate \ Support \ Facades \ Mail;
използвайте App \ Mail \ sendEmail;
клас EmailController разширява Controller
индекс на функция ()
изглед за връщане ('emailsend');
функция изпращане (заявка $ заявка)
$ this-> валидиране ($ заявка, [
'name' => 'задължително',
'email' => 'задължително | имейл',
'message' => 'задължително'
]);
$ данни = масив (
'name' => $ request-> name,
'message' => $ request-> message
);
Mail :: to ('Receiver Email Address') -> изпращане (ново изпращане на имейл ($ данни));
return back () -> with ('success', 'Благодаря, че се свързахте с нас!');
Отвори изпращане на имейл клас и модифицирайте кода със следния код. Темата на имейла е дефинирана в изграждане () метод и имейл_шаблон view се използва за форматиране на съдържанието на имейл, създадено в следващата стъпка. Стойностите, предадени от EmailController се съхраняват в $ имейл обект и се предават в имейл_шаблон изглед.
пространство от имена App \ Mail;използвайте Illuminate \ Bus \ Queueable;
използвайте Illuminate \ Contracts \ Queue \ ShouldQueue;
използвайте Illuminate \ Mail \ Mailable;
използвайте Illuminate \ Queue \ SerializesModels;
class sentEmail се разширява Достъпен
използвайте Queueable, SerializesModels;
/ **
* Създайте нов екземпляр на съобщение.
*
* @return void
* /
публични имейли в $;
публична функция __construct ($ имейли)
$ this-> emails = $ имейли;
/ **
* Изградете съобщението.с
*
* @ върни $ това
* /
изграждане на публична функция ()
върнете $ this-> subject ('Съобщение от посетител')
-> изглед ('email_template')
-> с ('имейли', $ this-> имейли);
Създайте име на файл с изглед на шаблон имейл_шаблон.острие.php със следния код, за да изпратите форматираното имейл до подателя. Стойностите, предадени от изпращане на имейл клас се използват в този шаблон.
Здравейте,
Аз съм $ имейли ['name']
Запитването ми е за следната тема:
$ имейли ['съобщение'].
Ще бъде полезно, ако скоро ми отговорите.Благодаря ти.
Сега отворете уеб.php файл и добавете следния код на маршрута, за да отворите формата за контакт и да изпратите имейла.
Route :: get ('/ contact', '[имейл защитен]');Route :: post ('/ sendemail / send', '[имейл защитен]');
Изпълнете следния URL от браузъра, за да заредите формата за контакт.
http: // localhost / laravelpro / public / contact
Попълнете формуляра и кликнете върху Изпрати съобщение бутон за изпращане на съдържанието на формуляра до изпрати () метод на EmailController клас.
Ако имейлът е изпратен успешно, ще получите съобщението за успех, както е показано на следващото изображение.
Сега отворете акаунта в Gmail, който сте използвали за изпращане на имейл в изпрати () метод на EmailController клас. Ако отворите имейла, ще получите следното имейл съдържание, генерирано с помощта на имейл_шаблон Виж файла.
Видео урок
Заключение
В рамките на Laravel съществуват множество начини за изпращане на имейл. Най-простият и лесен начин за изпращане на имейл в Laravel е показан в този урок. Ако имате акаунт в Gmail, можете лесно да изпратите имейл, като следвате стъпките, показани в този урок. Тук се използва SMTP сървърът на Gmail за изпращане на имейл и задачата за изпращане на имейл се тества чрез стартиране на кода от локалния сървър. Този урок показва само форматирани в HTML задачи за изпращане на имейли. Можете също така да изпълнявате други задачи, като прикачен файл, име на подател и т.н., чрез използване на други методи на Поща клас.