Forum

sp_send_dbmail curs...
 
Bildirimler
Hepsini Temizle

[Çözüldü] sp_send_dbmail cursor kullanımı iletilmeyen mailler

12 Yazılar
4 Üyeler
6 Reactions
1,702 Görüntüleme
Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

Merhabalar,

Bir sorguyu tabloya basıyorum. Daha sonra o tablodan cursor açıyorum. Cursorden aldığım bilgiler ile sp_sen_dbmail kullanarak mail gönderiyorum.

Recipients için farklı mail copy_recipients farklı mail yazıyorum. Birisine 34 diğerine 37 mail düşüyor.

Logları incelediğimde sent_account_id NULL dönenler failed olmuş görünüyor.

Aynı prosedürü bir daha çalıştırdığımda önceden gitmemiş maillere bu sefer gittiğini görüyorum.

Mail adresi doğruluğu için function kullanıyorum. Mailler doğru. Eğer hatalıysa kendime mail gönderiyorum.

wait for delay da denedim ancak sorun çözülmedi.

1 gönderiyor 2 göndermiyor 4 gönderiyor 1 göndermiyor gibi istikrarsız bir durum var.

aldığım hata;

The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2021-12-15T17:36:01). Exception Message: Cannot send mails to mail server. (Failure sending mail.).

ekteki örnekte 50 mail gönderdim. 

Kodlarımı ekledim.

Yardımlarınızı rica ederim.

 

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 15/12/2021 18:45

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

IT'deki arkadaşla kontrol ettik. Gönderilmek istenen mail exchange'e düşmüyor dedi.

Sorun SQL tarafında dedi

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 17/12/2021 14:50

(@omercolakoglu)
Gönderiler: 69
Trusted Member
 

Merhaba,

Öncelikle değişken ve tablo isimlerinde Türkçe karakter kullanmamayı tavsiye ederim. Diğer taraftan elde ettiğiniz değişkenlerden herhangi biri null geliyorsa bu sorunun ondan olma ihtimali yüksek.

sp_send_dbmail den hemen önce aşağıdaki sorguyu çeker misiniz bu değişkenlerden en az birinin null geldiği değer var mı?

select
@CRSR_TARİH,
@CRSR_CLCARD_LOGREF,
@CRSR_FİRMA_KODU,
@CRSR_FİRMA_ADI,
@CRSR_MAIL,
@CRSR_BCC,
@CRSR_firmamiz_YETKİLİ,
@CRSR_firmamiz_POZİSYON,
@CRSR_firmamiz_İLETİŞİM_TELEFONU,
@CRSR_firmamiz_EPOSTA_ADRESİ,
@CRSR_ORT_VADE,
@CRSR_ORT_GECİKME_GÜNÜ,
@CRSR_VADESİ_GEÇEN_ÖDEME_TUTARI,
@CRSR_VADESİ_GELMEMİŞ_BORÇ_BAKİYENİZ,
@CRSR_TOPLAM_BORÇ_BAKİYENİZ

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AutoMail',
@recipients = @CRSR_MAIL,

....

 

 
Gönderildi : 17/12/2021 17:29

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

@omercolakoglu Merhabalar Ömer Bey,

öncelikle yanıtınız için teşekkür ederim. Sizden bir çok şey öğrendim 🙂

dediğinizi yaptım ancak NULL değer gelmiyor.

ayrıca cursor kullanmadığım başka joblar var her gece 23:55'te 5 adet mail atıyorum tek job 5 proc üzerinden. Ancak orada da aynı problemle karşılaşıyorum. Ve eğer mailde görüntülenen tablolardaki alanlardan herhangi birinde NULL değer olursa mail bomboş gidiyor.

 

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 17/12/2021 17:58

(@omercolakoglu)
Gönderiler: 69
Trusted Member
 

@adaliadam Merhaba,

Bir de database mail loglara bakar mısın orada ne yazıyor? Özellikle gitmeyenlerden bir tanesine manuel gönderip bakar mısın?

image
image
 
Gönderildi : 20/12/2021 09:52

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

@omercolakoglu Merhaba Ömer Bey,

loglar bu şekilde.

gitmeyenleri tekrar gönderdiğimde gidiyor. Ama toplu çalıştırınca gitmiyor. 

ilginç bir durum. Aynı jobı 2 kez çalıştırdım diyelim x firmasına ilkinde gitmiyor ikincisinde gidiyor. 

Screenshot 1

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 20/12/2021 11:03

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

@omercolakoglu tekrar Merhaba Ömer Bey,

 

bugün 230 adet ödeme talep maili gönderdim aybaşı olduğu için.

bunu 3 parça halinde gönderebildim. Failed olanları tekrar denedim ve gitti. Sadece 15 tanesi iletilmedi onlarda artık mevcut olmayan e-postalar olduğu için. Outlook'a geri dönen uyarılardan anladım. Failed olanlar exchange e hiç düşmüyor. Gönderilen kutusunda bile görünmüyor. SQL'den exchange'e geçiş olmuyor.

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 20/12/2021 12:04

ibrahim yildiz
(@ibrahimyildiz)
Gönderiler: 4570
Co-Helper
 

Detay bakmadım ama bir süredir konunuzu görüyorum burada yaşadığınız sorun connector retry sınırları ile ilgili olabilir belki de. Çok hızlı istek atıyorsanız connector'e ulaşmıyordur. Bu tip şeyleri kontrol edebilirsiniz.

https://docs.microsoft.com/en-us/exchange/mail-flow/queues/message-intervals?view=exchserver-2019
https://msexchangeworld.com/configure-exchange-hub-transport-message-retry-resubmit-and-expiration-intervals/

'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 20/12/2021 15:17

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

merhabalar,

Ömer Bey'in yardımlarıyla sorunu çözdük.

Öncelikle iletilmeyen maillerin deneme sayısını arttırdık. Aşağıdaki şekilde ayarladık.

image

Daha sonra her mail gönderiminden sonraya  3 saniye bekleme ekledik.

image

 

bu değişikliklerden sonra 230 adet mailin hepsini göndermiş olduk. Aslında sorun hataya düşen maillerin birden fazla gönderme denemesi yapmaması yüzündenmiş.

image

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 20/12/2021 19:26

Gökhan Erdoğdu
(@adaliadam)
Gönderiler: 40
Trusted Member
Konu başlatıcı
 

@ibrahimyildiz Merhabalar İbrahim Bey, cevabınızı yeni gördüm. Bizde o yöne baktık en sonunda ve deneme sayısını arttırınca sorunu çözdük.

teşekkür ederim.

Botek Otomasyon
Raporlama ve Analiz Uzmanı

 
Gönderildi : 20/12/2021 19:28

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33320
Illustrious Member Yönetici
 

Geçmiş olsun. Emeği geçenlere teşekkürler.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 21/12/2021 10:21

(@omercolakoglu)
Gönderiler: 69
Trusted Member
 

@adaliadam Sorunun çözüldüğüne sevindim. Güzel bir örnek oldu.

 
Gönderildi : 23/12/2021 11:38

Paylaş: