Gelişmiş durum kodu, eksiksiz bir olay raporu değil, yapılandırılmış bir ipucudur. “5.7.1”, incelemeyi güvenliğe veya politikaya yönelik olarak daraltabilir ancak politika sahibini, etkilenen rotayı tanımlayamaz veya yapılandırma değişikliğini tek başına düzeltemez. Sorun giderme sırasında tanılamanın tamamını kodun yanında tutun.
Her üç bileşeni de okuyun
RFC 3463 sınıf, konu ve ayrıntı bileşenleriyle gelişmiş durum kodlarını tanımlar. Sınıf, başarıyı, kalıcı geçici başarısızlığı ve kalıcı başarısızlığı birbirinden ayırır. Konu kategorileri adresleme, posta kutusu durumu, yönlendirme ve güvenlik veya politika gibi alanları birbirinden ayırır. Ayrıntı o konunun içindeki durumu daraltır. Sıradan üç basamaklı SMTP yanıtı kanıtların bir parçası olmaya devam ediyor. RFC 3463.
Son sayıyı genel hata tanımlayıcısı olarak görmeyin. Anlamı, gelişmiş kodun tamamına ve geçerli kayıt veya sağlayıcı belgelerine bağlıdır. Bir alıcı sistem, gelişmiş bir kod olmadan da yararlı düzyazı döndürebilir. Temel ve gelişmiş sınıflar tutarsız görünüyorsa, tam baytları koruyun ve günlüğü sessizce yeniden yazmak yerine sağlayıcı davranışını araştırın.
SMTP yanıtlarını teslim raporlarından ayırın
Konuşma sırasında bir SMTP yanıtı oluşur. Teslimat durumu bildirimi, sonuçları daha sonra bildirebilir ve birden fazla alıcıyı tanımlayabilir. RFC 3464 Son Alıcı, Eylem, Durum, Uzaktan MTA ve Tanılama Kodu dahil alanları tanımlar. Alıcı başına blokları bağımsız olarak okuyun; bir başarısızlık her alıcının başarısız olduğunu kanıtlamaz. RFC 3464 bölüm 2.
Eylem ve Durum farklı soruları yanıtlar. Eylem: başarısız oldu, raporlama anlamına gelir MTA bu alıcıya yönelik girişimleri durdurdu. Durum: 4.2.2, yeniden denemeler bittikten sonra bile geçici posta kutusu doluluğunun nedenini açıklayabilmektedir; başarısız oldu artı bir 4.xx Durumu, tutarsız bir SMTP yanıtı değil, bir DSN'de geçerlidir. Örneğin, bu alanlara sahip, süresi dolmuş bir öğe, yalnızca kapasitenin geri gelmesi nedeniyle otomatik olarak devam etmeyecektir. Herhangi bir değişiklik yapılmasına izin vermeden önce gerçek kuyruğu kontrol edin. Görmek RFC 3464 bölüm 2.3.3.
İnsanların okuyabileceği bir geri dönen konu, önceliklendirme için kullanışlıdır ancak belirleyici alanları atlayabilir. Mümkün olduğunda makine tarafından okunabilen raporu veya gönderme günlüğünü edinin. Raporlama sunucusunu uzak sunucudan ayrı tutun ve bir raporun zaman damgasını, başarısız SMTP komutunun zaman damgasından ayırın.
Varsayımsal bir alıcı bloğunu okuyun
Bir gönderme günlüğünün missing@example.test için RCPT TO'yu ve ardından 550 5.1.1'i kaydettiğini varsayalım. Açıklayıcı bir DSN alıcı bloğu, Son Alıcıyı içerebilir: rfc822; missing@example.test , Eylem: başarısız oldu, Durum: 5.1.1, Remote-MTA: dns; mx.example .test ve Teşhis Kodu: smtp; 550 5.1.1 Böyle bir kullanıcı yok. Bunlar, yürütülen bir işlem veya tam bir MIME raporu değil, icat edilmiş alan değerleridir.
Başarısız olan eylem bu alıcı için nihaidir, tanılama ise adreslemeye işaret eder. Adresin neden kullanılamadığını veya diğer alıcılara ne olduğunu belirlemez. Bu yanıtları kendi bloklarından ve güvenilir günlüklerinden alın. Nihai Alıcı, Eylem ve Durum her alıcı için zorunlu alanlardır; Remote-MTA ve Diagnostic-Code koşullu veya isteğe bağlıdır. Onların yokluğu, reddeden bir ana makine veya hata metni icat etmeye izin vermez.
Bilinmeyen kayıtlı ayrıntılar için mevcut IANA gelişmiş durum kaydı ve belirtilen spesifikasyon, ardından sağlayıcının mevcut açıklaması. RFC 3463 daha sonraki her kodun kapsamlı bir listesini değil, çerçeveyi sağlar.
Kodu test edilebilir bir hipoteze dönüştürün
Adresleme kodu için amaçlanan adresi ve alıcı sistem davranışını onaylayın. Yönlendirme kodu için başarısız olan sonraki atlama ve rota yapılandırmasını inceleyin. Bir güvenlik veya politika kodu için adı geçen gereksinimi ve sahibini tanımlayın. Tercih edilen bir DNS değişikliğiyle başlayıp ardından her yanıtı bunun desteği olarak yorumlamaktan kaçının.
Bir hipotezi, tahmin ettiği kanıtları ve izin verilen en küçük testi kaydedin. Düzeltilmiş bir mesaj, ilgili rota ve alıcı sınıfındaki orijinal mesajla karşılaştırılmalıdır. Çelişkili bir sonucu orijinal açıklamaya zorlamak yerine yararlı bir kanıt olarak koruyun. İletme paketleri, mesaj içeriği ve kişisel veriler en aza indirilmiş şekilde zaman damgalarını, tam yanıtı, etkilenen kapsamı ve halihazırda test edilmiş değişiklikleri içermelidir. Kod araması teşhisin başlangıcıdır, tamamlanması değil.
Yararlı bir yükseltme paketi oluşturun
- Kimlik: iletiyi ve kuyruk tanımlayıcılarını, başarısız zarf alıcısını ve etkilenen kapsamı korur.
- Zaman çizelgesi: kayıt gönderimi, başarısız girişim ve raporun gelişi ayrı ayrı.
- Teşhis: Tam SMTP yanıtını, komut aşamasını ve alıcı başına DSN alanlarını içerir.
- Sahiplik: Her biri için kanıtlarla birlikte raporlama sistemini reddetme sisteminden ayırın.
- Sonraki adım: test edilebilir bir nedeni, en küçük izin verilen kontrolü ve çelişkili kanıtları belirtin. Kişisel verileri en aza indirin.