찾다
백엔드 개발PHP 튜토리얼Laravel 5.3에서 메일 로깅 : 메일 드라이버를 연장합니다

laravel 5.3 메일 보내기 확장 : 사용자 정의 데이터베이스 메일 로그 Laravel 5.3은 다양한 인기있는 서비스를 통해 이메일을 구성하고 보내는 쉬운 방법을 제공하며 개발을위한 로그 보조 프로그램이 포함되어 있습니다. 그러나 사용 가능한 모든 서비스를 다루는 것은 아니며 기존 메일 드라이버 시스템의 확장이 필요할 수 있습니다.

키 포인트 :

메일 드라이버 시스템을 확장하려면 Artisan Command Line Assistant를 사용하여 새로운 서비스 제공 업체를 만들 수 있습니다. 이 서비스 제공 업체는 응용 프로그램과 상호 작용하고 시작시 서비스를 등록합니다.

새 서비스 제공 업체는 기존 를 확장하여 메소드를 구현할 수 있습니다. 이를 통해 신속한 메일러 인스턴스를 컨테이너에 바인딩하는 새로운 운송 관리자를 생성 할 수 있습니다. 확장 메일 드라이버 시스템을 사용하여 디버깅을 위해 이메일을 데이터베이스 테이블에 로그인 할 수 있습니다. 이는 데이터베이스 테이블이 테이블과 상호 작용할 수있는 새로운 마이그레이션과 새로운 모델을 작성하여 수행됩니다. 그런 다음 파일의 제공자 목록에 제공자를 추가하고 파일의

에 메일 드라이버를 등록하십시오.
  • Laravel은 메일 배송을 포함한 많은 실용적인 기능을 제공합니다. 다양한 인기있는 서비스를 통해 쉽게 구성하고 이메일을 보낼 수 있으며 개발을위한 로그 보조 프로그램도 포함됩니다.
  • 이것은 IlluminateMailMailServiceProvider 뷰를 사용하여 웹 사이트의 새로 등록 된 사용자에게 이메일을 보냅니다. Laravel 5.3에서 우편으로 사용하면 더 쉬워집니다 (그러나 이전 구문은 여전히 ​​유효합니다). register
  • 다음은 예입니다 : config/app.php config/mail.php db Laravel은 또한 개발 단계에서 로그 드라이버를 사용하여 메일을 보내기위한 좋은 출발점과 생산 단계에서 SMTP, SparkPost, Mailgun 등을 제공합니다. 이것은 대부분의 경우 좋은 것처럼 보이지만 사용 가능한 모든 서비스를 다루는 것은 아닙니다! 이 자습서에서는 기존 메일 드라이버 시스템을 확장하여 자체 드라이버를 추가하는 방법을 배웁니다.
  • 예제를 간단하고 명확하게하기 위해 메일 로그를 데이터베이스 테이블에 로그인합니다.
서비스 제공 업체를 만듭니다

이를 달성하는 선호하는 방법은 응용 프로그램과 상호 작용하고 시작시 서비스를 등록 할 수있는 서비스 제공 업체를 작성하는 것입니다. 먼저 Artisan Command Line Assistant를 사용하여 새로운 서비스 제공 업체를 생성합시다.

이것은

폴더에서 새로운 클래스를 생성합니다. Laravel Service 제공 업체에 익숙하다면 클래스를 확장하고 메소드를 정의했음을 알 수 있습니다. 문서에서 제공자에 대한 자세한 내용을 읽을 수 있습니다.

메일 제공 업체 사용 app/Providers 부모 서비스 제공 업체 클래스를 사용하는 대신 바로 가기를하고 기존 ServiceProvider를 확장 할 수 있습니다. 이는 메소드가 구현되었음을 의미합니다. boot register

메소드는

구성 값에 따라 해당 전송 드라이버를 반환합니다. 여기서 할 수있는 일은

상위 메소드를 호출하기 전에 수표를 수행하고 전송 관리자 를 반환하는 것입니다. IlluminateMailMailServiceProvider register 전송 관리자 사용 인스턴스를 구문 분석하고 Swift_mailer의 Swiftmailer 인스턴스를 반환해야합니다. 신속한 메일러 인스턴스를 컨테이너에 바인딩해야합니다.

# 生成一个新的可邮件类
php artisan make:mail WelcomeMail

전송 객체를 실제 드라이버로 취급 할 수 있습니다. 네임 스페이스를 확인하면 각 드라이버마다 다른 전송 클래스가 있습니다 (예 : , 등). registerSwiftMailer mail.driver 클래스에는 registerSwiftMailer 인스턴스가 필요하며, 클래스를 확장하여 만족할 수 있습니다. 이렇게 보일 것입니다.

우리가 여기서 구현 해야하는 유일한 방법은
// app/Mail/WelcomeMail.php

class WelcomeUser extends Mailable
{
    use Queueable, SerializesModels;

    public $user;

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

    public function build()
    {
        return $this->view('emails.welcome');
    }
}
메소드입니다. 메일 전송 논리를 담당하며,이 경우 이메일을 데이터베이스에 로그인해야합니다. 우리의 생성자는 외부 종속성이 필요하지 않기 때문에 지금은 비워 둘 수 있습니다.

메소드는 항상 수신자 이메일과 이름의 연관 배열을 반환합니다. 우리는 swift.mailer 함수를 사용하여 이메일 목록을 얻은 다음 통합하여 문자열을 얻습니다.

데이터베이스로 이메일을 기록하십시오 다음 단계는 데이터베이스 테이블에 필요한 마이그레이션을 만드는 것입니다.
// routes/web.php

Route::get('/', function () {
    $user = User::find(2);

    \Mail::to($user->email)->send(new WelcomeUser($user));

    return "done";
});

IlluminateMailTransport 우리의 마이그레이션에는 이메일 본문, 주제 및 수신자 이메일 만 포함되지만 필요에 따라 자세한 내용을 추가 할 수 있습니다. 사용 가능한 필드 목록을 보려면 클래스 정의를 확인하십시오. LogTransport 이제 테이블과 상호 작용하고 필요한 필드를 SparkPostTransport 배열에 추가하려면 새 모델을 만들어야합니다.

Mail::send('emails.welcome', ['user' => $user], function ($m) use ($user) {
    $m->to($user->email, $user->name)->subject('Welcome to the website');
});
# 生成一个新的可邮件类
php artisan make:mail WelcomeMail
이메일 보내기 좋아요, 이제 지금까지 달성 한 것을 테스트 할 때입니다. 먼저 제공자를 파일의 공급자 목록에 추가합니다.

config/app.php 그런 다음 파일에 메일 드라이버를

에 등록합니다.
// app/Mail/WelcomeMail.php

class WelcomeUser extends Mailable
{
    use Queueable, SerializesModels;

    public $user;

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

    public function build()
    {
        return $this->view('emails.welcome');
    }
}

나머지 부분은 테스트 이메일을 보내고 데이터베이스에 로그인한지 확인하는 것입니다. 홈페이지 URL에 액세스하면 이메일을 보내 드리겠습니다. 다음은 코드입니다. config/mail.php db 홈페이지 경로에 액세스 한 후 명령을 실행하여 테이블 레코드를 확인할 수 있습니다.

// routes/web.php

Route::get('/', function () {
    $user = User::find(2);

    \Mail::to($user->email)->send(new WelcomeUser($user));

    return "done";
});

결론 이 기사에서는 메일 드라이버 시스템을 확장하여 디버깅을위한 이메일을 가로 채는 방법을 볼 수 있습니다. Laravel에서 내가 감사하는 한 가지는 비교할 수없는 확장 성입니다. 라우터와 IOC에서 우편으로 모든 것을 변경하거나 확장 할 수 있습니다.
php artisan make:provider DBMailProvider
질문이나 의견이 있으시면 아래에 게시하시면 최선을 다해 답변 해 드리겠습니다.

Laravel 5.3 (FAQ)에서 메일 로깅에 대한 FAQ Laravel 5.3에서 메일 드라이버를 연장하는 방법은 무엇입니까? php artisan tinker Laravel 5.3에서 메일 드라이버를 확장하려면 새로운 서비스 제공 업체를 작성해야합니다. 이 서비스 제공 업체는 기존 메일 드라이버를 확장하고 추가 기능을 추가 할 수 있습니다. 명령을 사용하여 새 서비스 제공 업체를 만들 수 있습니다. 제공자를 만든 후 파일에 등록 할 수 있습니다. 제공자에서는 emails 메소드를 사용하여 메일 드라이버에 사용자 정의 기능을 추가 할 수 있습니다.

Laravel에서 메일 로깅의 목적은 무엇입니까?

Laravel의 메일 로깅은 응용 프로그램에서 보낸 모든 발신 이메일을 추적 할 수있는 기능입니다. 이것은 언제, 누구에게 전송되는지 정확하게 볼 수 있기 때문에 디버깅에 매우 유용합니다. 또한 응용 프로그램에서 보낸 모든 이메일 커뮤니케이션의 레코드를 제공하기 때문에 감사에 매우 유용합니다. Mail Logging in Laravel 5.3: Extending the Mail Driver 모든 발신 이메일을 기록하도록 Laravel을 구성하는 방법은 무엇입니까?

모든 발신 이메일을 기록하도록 Laravel을 구성하려면 파일을 수정해야합니다. 이 파일에서는

옵션을

로 설정할 수 있습니다. 이것은 Laravel에게 모든 발신 이메일을 기록하도록 지시합니다. 로그는

디렉토리에 저장됩니다.

Laravel에서 이메일 로그를 보는 방법은 무엇입니까?

Laravel의 메일 로그는

디렉토리에 저장됩니다. 이 디렉토리를 탐색하고 로그 파일을 열어 이러한 로그를 볼 수 있습니다. 로그 파일은 날짜에 따라 명명되므로 특정 날짜에 대한 로그를 쉽게 찾을 수 있습니다.

Laravel에서 이메일 로그 형식을 사용자 정의 할 수 있습니까?

예, Laravel에서 메일 로그 형식을 사용자 정의 할 수 있습니다. 메일 드라이버를 확장하고

메소드를 재정의하여 수행 할 수 있습니다. 이 방법에서는 로그 메시지의 형식을 지정할 수 있습니다.

(FAQ의 나머지 부분은 전자 메일 자체와 관련이 있으며이 예에서는 이메일 로그 확장과 관련이 없으므로 생략됩니다. 이미지 경로 및 log

는 실제 액세스 가능한 이미지 링크로 대체해야합니다.

위 내용은 Laravel 5.3에서 메일 로깅 : 메일 드라이버를 연장합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 이메일 : 단계별 보내기 안내서PHP 이메일 : 단계별 보내기 안내서May 09, 2025 am 12:14 AM

phpisusedforendingemailsduetoitsintegrationwithsermailservices 및 externalsmtpproviders, 1) setupyourphpenvironmentwitheberverandphp, temailfuncpp를 보장합니다

PHP를 통해 이메일을 보내는 방법 : 예 및 코드PHP를 통해 이메일을 보내는 방법 : 예 및 코드May 09, 2025 am 12:13 AM

이메일을 보내는 가장 좋은 방법은 Phpmailer 라이브러리를 사용하는 것입니다. 1) Mail () 함수를 사용하는 것은 간단하지만 신뢰할 수 없으므로 이메일이 스팸으로 입력되거나 배송 할 수 없습니다. 2) Phpmailer는 더 나은 제어 및 신뢰성을 제공하며 HTML 메일, 첨부 파일 및 SMTP 인증을 지원합니다. 3) SMTP 설정이 올바르게 구성되었는지 확인하고 (예 : STARTTLS 또는 SSL/TLS) 암호화가 보안을 향상시키는 데 사용됩니다. 4) 많은 양의 이메일의 경우 메일 대기열 시스템을 사용하여 성능을 최적화하십시오.

고급 PHP 이메일 : 사용자 정의 헤더 및 기능고급 PHP 이메일 : 사용자 정의 헤더 및 기능May 09, 2025 am 12:13 AM

CustomHeadersAndAdAncedFeaturesInpHeAmailEnhanceFectionality.1) 1) CustomHeadersAdDmetAdataFortrackingand Categorization.2) htmlemailsallowformattingandinteractivity.3) attachmentSentUsingLibraries likePhpMailer.4) smtpauthenticimprpr

PHP & SMTP와 함께 이메일 보내기 안내서PHP & SMTP와 함께 이메일 보내기 안내서May 09, 2025 am 12:06 AM

PHP 및 SMTP를 사용하여 메일을 보내는 것은 PHPMailer 라이브러리를 통해 달성 할 수 있습니다. 1) phpmailer 설치 및 구성, 2) SMTP 서버 세부 정보 설정, 3) 이메일 컨텐츠 정의, 4) 이메일 보내기 및 손잡이 오류. 이 방법을 사용하여 이메일의 신뢰성과 보안을 보장하십시오.

PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?May 08, 2025 am 12:21 AM

TheBesteptroachForendingeMailsInphPisusingThephPmailerlibraryDuetoitsReliability, featurerichness 및 reaseofuse.phpmailersupportssmtp, proversDetailErrorHandling, supportSattachments, andenhancessecurity.foroptimalu

PHP의 종속성 주입을위한 모범 사례PHP의 종속성 주입을위한 모범 사례May 08, 2025 am 12:21 AM

의존성 주입 (DI)을 사용하는 이유는 코드의 느슨한 커플 링, 테스트 가능성 및 유지 관리 가능성을 촉진하기 때문입니다. 1) 생성자를 사용하여 종속성을 주입하고, 2) 서비스 로케이터 사용을 피하고, 3) 종속성 주입 컨테이너를 사용하여 종속성을 관리하고, 4) 주입 종속성을 통한 테스트 가능성을 향상 시키십시오.

PHP 성능 튜닝 팁 및 요령PHP 성능 튜닝 팁 및 요령May 08, 2025 am 12:20 AM

phpperformancetuningiscrucialbecauseitenhancesspeedandefficies, thearevitalforwebapplications.1) cachingsdatabaseloadandimprovesResponsetimes.2) 최적화 된 databasequerieseiesecessarycolumnsingpeedsupedsupeveval.

PHP 이메일 보안 : 이메일 보내기 모범 사례PHP 이메일 보안 : 이메일 보내기 모범 사례May 08, 2025 am 12:16 AM

theBestPracticesForendingEmailsSecurelyPinphPinclude : 1) usingecureconfigurations와 whithsmtpandstarttlSencryption, 2) 검증 및 inputSpreverventInseMeStacks, 3) 암호화에 대한 암호화와 비도시를 확인합니다

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는