Giriş yapmadınız.

#1 09.10.2013 17:59:41

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,664
Website

Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Merhaba

Basit bir şekilde birden fazla alıcıya mail gönderiyorum:

$to = array(
    '[email protected]',
    '[email protected]',
    '[email protected]',
);
Mail::send('emails.test', $data, function($message) use ($to)
        {
            $message->to($to)->subject('Deneme Mail');
        });

Tabi test view içerisine göderilen $data değişmiyor. Mesela ben her bir gönderilen mail için farklı bir data kullanmak istiyorum (Ör mail içerisinde kişinin adını kullanma. Doğal olarak her mailde değişecek)

Bunu nasıl yapabilirim? foreach kullanmadan? foreach kullansam sorun olur mu?

Çevrimdışı

#2 09.10.2013 18:22:39

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,484
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Foreach ile hiçbir sorun olmaz.

$to = array(
    '[email protected]',
    '[email protected]',
    '[email protected]',
);

foreach($to AS $person)
{
	Mail::send('emails.test', $data, function($message) use ($person)
	{
	    $message->to($person)->subject('Deneme Mail');
	});
}

Çevrimdışı

#3 09.10.2013 18:35:23

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,664
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Teşekkürler. Bu şekilde bir deneyeceğim bakalım SMTP bir sorun yaşatacak mı.

Çevrimdışı

#4 09.10.2013 18:38:05

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,484
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Rica ederim, iyi çalışmalar.

Çevrimdışı

#5 10.10.2013 15:42:36

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Dipnot bırakayım: Maillerde zaman aşımı vs. bir sorun yaşanmaması için bir queue sistemi (misal Iron MQ) hazırlayıp Mail::send(...) yerine Mail::queue(...) diyerek parametreleri çağırmanızı tavsiye ederim.


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#6 10.10.2013 17:10:30

angelside
Üye
Kayıtlı: 26.12.2012
Mesajlar: 195
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Kuyruk olayı çok iyi çalışıyor, videosu vardı basit bir iletişim formu ile sadece 1 adet mail gönderiminde bile hız farkı açıkça görülüyordu.

Kuyruk olayını beanstalkd ile bir defa denedim, konsoldan başlatınca ve konsolu kapatınca sunucu reboot olana kadar devam edecek mi kuyruk takibi? Normal paylaşımlı bir host için hazırlanan bir betikte kuyruk nasıl başlatılacak mı, cron ile mi?

Arda yazdı:

Dipnot bırakayım: Maillerde zaman aşımı vs. bir sorun yaşanmaması için bir queue sistemi (misal Iron MQ) hazırlayıp Mail::send(...) yerine Mail::queue(...) diyerek parametreleri çağırmanızı tavsiye ederim.


http://urltara.com - Aynı ip üzerinde olan diğer siteler ?

Çevrimdışı

#7 11.10.2013 11:32:04

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

angelside yazdı:

Kuyruk olayı çok iyi çalışıyor, videosu vardı basit bir iletişim formu ile sadece 1 adet mail gönderiminde bile hız farkı açıkça görülüyordu.

Kuyruk olayını beanstalkd ile bir defa denedim, konsoldan başlatınca ve konsolu kapatınca sunucu reboot olana kadar devam edecek mi kuyruk takibi? Normal paylaşımlı bir host için hazırlanan bir betikte kuyruk nasıl başlatılacak mı, cron ile mi?

Arda yazdı:

Dipnot bırakayım: Maillerde zaman aşımı vs. bir sorun yaşanmaması için bir queue sistemi (misal Iron MQ) hazırlayıp Mail::send(...) yerine Mail::queue(...) diyerek parametreleri çağırmanızı tavsiye ederim.

Kuyruğu şey gibi düşünün, Kullanıcıyı bekletmek yerine amele bir bot ( :-D ) sizin için sayfaya geliyor ve işleminiz için loading(...) bekliyor. Sunucu kapalı iken / restart olurken çalışmayacaktır doğal olarak, fakat erişilemediğini anlayınca bir süre sonra yeniden deneyecektir queue sisteminize bağlı olarak diye düşünüyorum. Paylaşımlı hostta da sorun vermeyecektir, yalnız yapacağınız işlem ile script timeout sürenizi de ayarlamalısınız, ya da her bir döngü değeri (bu örnekte atılan her bir mail için) için ayrı queue tanımlamalısınız (Mail::queue() bunu yapıyor tam olarak), fakat bu da eğer döngü içindeyse pek çok queue tetiği demek oluyor. Bu nedenle queue prosesini bir döngü ile tek bir queue'ye bağlamayı şahsen ben tercih ediyorum.


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#8 12.10.2013 03:39:04

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,664
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

Arda yazdı:

Dipnot bırakayım: Maillerde zaman aşımı vs. bir sorun yaşanmaması için bir queue sistemi (misal Iron MQ) hazırlayıp Mail::send(...) yerine Mail::queue(...) diyerek parametreleri çağırmanızı tavsiye ederim.

Teşekkürler. IronMQ + Mandrill kullanıyorum. Örneğin Admin 5 kullanıcı için ortak bir görev ekliyor ve kullanıcıları mail ile uyarı gidiyor. Bunu veri tabanına kaydederken tabi ki mail göndermeye çalışırsam fonksiyon işini bitirinceye kadar bekletecek. O yüzden IronMQ ile queue kullanarak hazırladım. Kayıt işlemi bittikten birkaç saniye sonra IronMQ tetiklemeye başlıyor ve arka planda mailler gidiyor. Türkiye'de bulunan paylaşımlı bir hosting kullandığım için beanstalkd bulmak biraz hayal, o yüzden IronMQ kullandım. Bırak beanstalkdı daha validation kullanırken mime validation bile kullanamıyorum. Adamlar PHP 5.3 ile birlikte gelen FileInfo'yu iptal etmiş, yerine eski PECL eklentisi olanı kurmuş o yüzden hata veriyor, eksik constant var sanırım, ben de eski usül yaptırıyorum, sürünüyoruz resmen smile

Çevrimdışı

#9 19.10.2013 15:35:42

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Birden fazla kişiye mail gönderirken View'a farklı data gönderme

mgsmus yazdı:
Arda yazdı:

Dipnot bırakayım: Maillerde zaman aşımı vs. bir sorun yaşanmaması için bir queue sistemi (misal Iron MQ) hazırlayıp Mail::send(...) yerine Mail::queue(...) diyerek parametreleri çağırmanızı tavsiye ederim.

Teşekkürler. IronMQ + Mandrill kullanıyorum. Örneğin Admin 5 kullanıcı için ortak bir görev ekliyor ve kullanıcıları mail ile uyarı gidiyor. Bunu veri tabanına kaydederken tabi ki mail göndermeye çalışırsam fonksiyon işini bitirinceye kadar bekletecek. O yüzden IronMQ ile queue kullanarak hazırladım. Kayıt işlemi bittikten birkaç saniye sonra IronMQ tetiklemeye başlıyor ve arka planda mailler gidiyor. Türkiye'de bulunan paylaşımlı bir hosting kullandığım için beanstalkd bulmak biraz hayal, o yüzden IronMQ kullandım. Bırak beanstalkdı daha validation kullanırken mime validation bile kullanamıyorum. Adamlar PHP 5.3 ile birlikte gelen FileInfo'yu iptal etmiş, yerine eski PECL eklentisi olanı kurmuş o yüzden hata veriyor, eksik constant var sanırım, ben de eski usül yaptırıyorum, sürünüyoruz resmen smile

Çalıştığım iş yerinde kaç hosting firması ile kavga ettim bu sebepten anlatamam, çok iyi bilirim smile


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

Forum alt kısmı