دارا بودن چند ایمیل در سیستم

پرسیده شده
فعالیت 1782 روز پیش
دیده شده 1190 بار
0

سلام خدمت استاد گرامی 

برای اینکه یک smtp  به سیستم معرفی کنیم از فایل env   استفاده میکنیم ...

اگر برنامه زمانی احتیاج به داشتن دو یا چند  سیستم  smtp برای یک env  رو داشته باشه باید چکار کرد 

مشکل در فهم این موضوع است که خیلی خب . درایور رو ست کردی ولی از چند ایمیل متفاوت روی  smtp میخوای استفاده کنی ... برای این موضوع چطور؟

 برای یک smtp  چندین میل متفاوت ست کنیم و از اونها در برنامه استفاده کنیم مانند 

مثلا برای ثبت نام 

[email protected]

برای پشتیبانی 

[email protected] 

و استفاده کردن هرکدوم بر جای خودش را راهنمایی میفرمایید 

فایل پیوست

مرتضی حرمتی
مرتضی حرمتی

11 خرداد 98

0
حذف شده

فک کنم راه حلش اینه :

شما باید 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

فایل پیوست

MohammadMoghadasi

توسط

MohammadMoghadasi

11 خرداد 98

1
حذف شده

سلام ... 

در مورد داشتن 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');
}

 

موفق باشید . 

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

11 خرداد 98

0
حذف شده

ممنونم محمد جان مرسی از راهنماییت :)) 

استاد با Build اخر موضوع جا افتاد فقط یک سوال وقتی از متود from استفاده میکنیم علنا داریم دیفالت MAIL_USERNAME env  رو عوض میکنیم ،

در واقع این ایمیل ، ایمیلی خارج از سیستم میشه ... مقادیر این ایمیل جدید کجا مشخص میشه ؟ 

MAIL_USERNAME= [email protected]
MAIL_PASSWORD=6d3bbc0835b365 ====> ?????

وقتی جای  deafult میشینه ...پسورد دستزسی به اون ایمیل رو از کجا تنظیم میکنیم ؟

فایل پیوست

مرتضی حرمتی

توسط

مرتضی حرمتی

11 خرداد 98

1
حذف شده

خیر مرتضی جان، شما با تابع from دارید MAIL_FROM_ADDRESS رو عوض میکنید نه MAIL_USERNAME رو .. 

یک موضوعی که باید در مورد SMTP بدونید اینه که وقتی شما یک دسترسی به یک SMTP خاصی دارید با هر یوزری که بخواید میتونید ایمیل ارسال کنید، و یوزر و پسورد SMTP کاملا متفاوت هستش از اون یوزری که بااون ایمیل رو ارسال میکنید . 

به عنوان مثال ما الان یک یوزر و پسورد از یک SMTP به خصوص داریم که روی دامین ما به نام exmaple.com ثبت شده، از این به بعد ما با هر یوزری که بخواهیم از دامین example.com میتونیم ایمیل ارسال کنیم مثلا [email protected] یا [email protected] و هر یوزری دیگه ای که دلخواه ما هستش. 

موفق باشید . 

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

11 خرداد 98

0
حذف شده

مرسی استاد الان کاملا مفهومیه موضوع جا افتاد 

درواقع یک لول بالاتر هستش و اجازه دسترسی به همه ی ایمیل های موجود در هاست رو میده 

 

فایل پیوست

مرتضی حرمتی

توسط

مرتضی حرمتی

12 خرداد 98