Динамічна конфігурація поштового відправника в Laravel із використанням Mail::build

Перекладено ШІ 2 Laravel News 16 травня, 2026

Вас цікавить, як гнучко налаштувати відправку електронних листів у Laravel? У нашій статті ви дізнаєтеся, як використовувати метод Mail::build для динамічної конфігурації мейлерів — це може стати в нагоді в багатокористувацьких програмах та нестандартних рішеннях електронної пошти

```html

Хочете налаштувати поштові програми динамічно? Метод Mail::build у Laravel дозволяє створювати поштові програми на льоту! Давайте розглянемо цей гнучкий підхід до налаштування електронної пошти.

# Основне використання

Ось як можна динамічно створити поштову програму:

use Illuminate\Support\Facades\Mail;
 
$mailer = Mail::build([
    'transport' => 'smtp',
    'host' => '127.0.0.1',
    'port' => 587,
    'encryption' => 'tls',
    'username' => 'usr',
    'password' => 'pwd',
    'timeout' => 5,
]);
 
$mailer->send($mailable);

# Приклад з реального життя

Ось як можна це використати в багатокористувацькому застосунку:

class TenantMailService
{
    public function sendWithTenantConfig(
        Tenant $tenant,
        Mailable $mailable
    ) {
        $mailerConfig = $tenant->email_settings;
 
        $mailer = Mail::build([
            'transport' => 'smtp',
            'host' => $mailerConfig->smtp_host,
            'port' => $mailerConfig->smtp_port,
            'encryption' => $mailerConfig->encryption,
            'username' => decrypt($mailerConfig->username),
            'password' => decrypt($mailerConfig->password),
            'from' => [
                'address' => $tenant->email,
                'name' => $tenant->company_name
            ]
        ]);
 
        try {
            $mailer->send($mailable);
 
            Log::info("Email sent for tenant: {$tenant->id}", [
                'mailable' => get_class($mailable)
            ]);
 
        } catch (Exception $e) {
            Log::error("Failed to send email for tenant: {$tenant->id}", [
                'error' => $e->getMessage()
            ]);
 
            throw $e;
        }
    }
}
 
// Використання
class NewsletterController extends Controller
{
    public function send(
        Tenant $tenant,
        TenantMailService $mailService
    ) {
        $newsletter = new TenantNewsletter($tenant);
 
        $mailService->sendWithTenantConfig(
            $tenant,
            $newsletter
        );
 
        return back()->with('success', 'Newsletter queued for sending');
    }
}

Динамічна конфігурація поштової програми ідеально підходить для багатокористувацьких застосунків, нестандартних поштових провайдерів або будь-якої ситуації, коли налаштування пошти слід конфігурувати під час виконання

```

Популярні

Інше, що варто прочитати

18 Оновлено 16 травня, 2026

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту

17 Оновлено 16 травня, 2026

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

36 Оновлено 16 травня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку