سلام خدمت استاد گرامی
برای اینکه یک smtp به سیستم معرفی کنیم از فایل env استفاده میکنیم ...
اگر برنامه زمانی احتیاج به داشتن دو یا چند سیستم smtp برای یک env رو داشته باشه باید چکار کرد
مشکل در فهم این موضوع است که خیلی خب . درایور رو ست کردی ولی از چند ایمیل متفاوت روی smtp میخوای استفاده کنی ... برای این موضوع چطور؟
برای یک smtp چندین میل متفاوت ست کنیم و از اونها در برنامه استفاده کنیم مانند
مثلا برای ثبت نام
برای پشتیبانی
و استفاده کردن هرکدوم بر جای خودش را راهنمایی میفرمایید
فک کنم راه حلش اینه :
شما باید override پیکربندی رو در زمان اجرای برنامه :
// In some controller
public function sendEmail(Request $request)
{
Config::set('mail.host', 'smtp1.sample.com');
Mail::to($request->user())->send(new OrderShipped($order));
Config::set('mail.host', 'smtp2.sample.com');
Mail::to($request->user())->send(new OrderShipped($order));
}
و در آخر باید یک سرویس بنویسید که اینو براتون هندل کنه مثال:
$config = [
'driver' => 'smtp',
'host' => 'smtp1.example.com',
'username' => foo',
'password' => 'bar'
]
Config::set('mail', $config);
منبع: https://laracasts.com/discuss/channels/laravel/sending-email-from-different-smtp-configuration
سلام ...
در مورد داشتن SMTP های مختلف، لاراول به صورت پیش فرض این مورد رو پشتیبانی نمیکنه و اصولا هم این کار رو نمیکنند و دلیلی برای وجود چندین SMTP برای یک سیستم وجود نداره ... ولی برای این کار روش های زیادی وجود داره یکی از راحتترین روش ها این هستش که زمانی که دارید ایمیل رو ارسال میکنید SMTP خودتون رو تغییر بدید .
$config = [
'driver' => 'smtp',
'host' => 'smtp.example.com',
'username' => user',
'password' => 'password'
]
Config::set('mail', $config);
در مورد موضوع استفاده از آدرس های مختلف، لاراول این موضوع رو پشتیبانی میکنه و زمانی که دارید ایمیل رو ارسال میکنید با استفاده از تابع from میتونید آدرس رو تغییر بدید . به صورت زیر :
public function build()
{
return $this->from('[email protected]')
->view('emails.orders.shipped');
}
موفق باشید .
ممنونم محمد جان مرسی از راهنماییت :))
استاد با Build اخر موضوع جا افتاد فقط یک سوال وقتی از متود from استفاده میکنیم علنا داریم دیفالت MAIL_USERNAME env رو عوض میکنیم ،
در واقع این ایمیل ، ایمیلی خارج از سیستم میشه ... مقادیر این ایمیل جدید کجا مشخص میشه ؟
MAIL_USERNAME= [email protected]
MAIL_PASSWORD=6d3bbc0835b365 ====> ?????
وقتی جای deafult میشینه ...پسورد دستزسی به اون ایمیل رو از کجا تنظیم میکنیم ؟
خیر مرتضی جان، شما با تابع from دارید MAIL_FROM_ADDRESS رو عوض میکنید نه MAIL_USERNAME رو ..
یک موضوعی که باید در مورد SMTP بدونید اینه که وقتی شما یک دسترسی به یک SMTP خاصی دارید با هر یوزری که بخواید میتونید ایمیل ارسال کنید، و یوزر و پسورد SMTP کاملا متفاوت هستش از اون یوزری که بااون ایمیل رو ارسال میکنید .
به عنوان مثال ما الان یک یوزر و پسورد از یک SMTP به خصوص داریم که روی دامین ما به نام exmaple.com ثبت شده، از این به بعد ما با هر یوزری که بخواهیم از دامین example.com میتونیم ایمیل ارسال کنیم مثلا [email protected] یا [email protected] و هر یوزری دیگه ای که دلخواه ما هستش.
موفق باشید .
مرسی استاد الان کاملا مفهومیه موضوع جا افتاد
درواقع یک لول بالاتر هستش و اجازه دسترسی به همه ی ایمیل های موجود در هاست رو میده