Laravel がどのようにメールを送信するか知っていますか?

藏色散人
リリース: 2020-10-19 14:25:18
転載
2188 人が閲覧しました

# laravel のチュートリアル列「Laravelがメールを送信する方法を知っていますか? 》, 困っている友達の役に立てば幸いです!

はじめに

前の章では、電子メールを送信するための配慮されたフォーム、完璧なデータを用意しました。確認したら、この記事ではlaravel内でメールを送信する方法を説明します。

#電子メールはとても便利ですので、悪用しないでください。

コード時間

laravel は、人気があり強力な SwiftMailer ライブラリを統合しています。これは、電子メールを送信するために必要な基礎となるロジックをカプセル化しています。送信ロジックと

メールの内容を準備する方法に焦点を当てる必要があります。

laravel 設定ファイル

config/mail.php デフォルトの smtp パラメータ:

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'auth_mode' => null,],
ログイン後にコピー

は主に、送信プロトコル、ホスト アドレス、ポート番号、暗号化方法、ユーザーを指定するために使用されます。名前やパスワードなど。

海外の事情により、自社メールサーバーから送信されたメールが

スパムと判断され業務に影響を与えることを防ぐため、メールサーバーとしてデフォルトでmailgunが使用されています。

無料割り当てを使用してアカウントを登録すると、対応する数のメールを毎月送信できます。適用後、

app/services.php 構成ファイルに次のコードが表示されます。

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
    'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),],
ログイン後にコピー

対応する変数を .env ファイルで宣言するだけです。

電子メール送信クラス

電子メール送信ロジックを一元化するには、受信データをレンダリングし、電子メールを使用してユーザーに送信する必要があります。

次のコマンドを使用して電子メール処理クラスを生成します:

php artisan make:mail ContactEmail
ログイン後にコピー

生成されたファイルは

app/Mail/ContactEmail.php にあり、初期コンテンツは次のとおりです。次のとおりです:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ContactEmail extends Mailable
{
    use Queueable, SerializesModels;
    public function __construct()
    {
        //
    }
    public function build()
    {
        return $this->view('view.name');
    }
}
ログイン後にコピー

インスタンス化するとき、いくつかのデータを受信する必要があります:

public $contact;
public function __construct($contact){
    $this->contact = $contact;}
ログイン後にコピー

ユーザーフレンドリーな電子メールを送信すると、ユーザーの定着率が大幅に向上します。そのため、ビューを使用して電子メールをレンダリングする前に、次のようにします。

public function build(){
    return $this->to(config('mail.from.address'))->subject('HackerPair Inquiry')->view('emails.contact');}
ログイン後にコピー

ビュー ファイル

resources/views/emails/contact.blade.php を作成し、データのレンダリングと形式を簡単に記述します。

Hi,
A Laravel user has sent you a message.
Name: {{ $contact['name'] }}
E-mail: {{ $contact['email'] }}
Message: {{ $contact['msg'] }}
ログイン後にコピー

Send Email

前の記事では、$contact 変数を使用してリクエストのリクエスト本文からフィールド値を受け取りました。

前項ではメール送信のテンプレート「準備完了、東風だけです。」を準備しましたので、次はメール送信のメイン処理ロジックです!

使用する前にヘッダーに

App\Mail\ContactEmail を忘れずに導入してください:

Mail::to(config('mail.support.address'))->send(new ContactEmail($contact));
ログイン後にコピー

はい、1 行だけです。

最後に記載

全体としては、まだ非常に基本的なものであり、すべての機能はサードパーティの助けを借りて実装されています。

たとえば、メール サーバーにはカスタマイズ可能なメソッドが多数あります。また、メール送信クラスもあり、カスタマイズしたテンプレートを多数作成できます。

以上がLaravel がどのようにメールを送信するか知っていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート