2016-03-30 23 views
0

'da "Alınan" e-posta üstbilgisini sınayın İşte, özel e-posta adresime [nameA|nameB|nameC]@example.org'a gönderilen herhangi bir postayı iletmek için elek nasıl yapılandırdığımı gösteren bir örnektir. gönderildiği adres uzakta bir yerde bir "Alındı" başlığında sıkışmış çünkü Süzgeç

if address :localpart :is ["To","Cc","Bcc"] 
["nameA", "nameB", "nameC"] { 
    redirect "<my private email address>"; 
    stop; 
} 

Bazen de

, e-posta iletilmez.

Received: from ###server### ([###ip_address###]) 
    by ###server### with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) 
    (Exim 4.84) 
    (envelope-from <###email_address###>) 
    id 1alDM0-0000yT-60 
    for [email protected]; Wed, 30 Mar 2016 12:28:00 +0200 

Bu e-postaları elek kuralında da yakalamanın etkili bir yolu var mı?

+0

Bcc ile başa çıkmak için çalışıyor gibi görünüyorsunuz: başlıkları ayrıştırmak. Alınan: 'başlıkların hedef adresi içereceği konusunda herhangi bir garanti yoktur. Bu bilginin açık bir şekilde açığa çıkarıldığı tek yer, tipik olarak atılan SMTP zarfındadır. Posta sunucunuzu SMTP zarf alıcısını her zaman belirli bir üstbilgiye kopyalayacak şekilde yapılandırabiliyorsanız, buna ihtiyacınız olmaz; ama sonra belki de Sense'e ihtiyacınız olmaz. – tripleee

cevap

0

Eleklerin indeks özelliği sayesinde alıcı adresini Alınan başlıklardan ayırabilirsiniz. Ben adres köşeli ayraç içinde ayarlanır alma postaların Alınan başlıklarında

require ["fileinto", "envelope", "variables", "mailbox", "index", "subaddress"]; 
... 
if header :index 3 :matches "Received" "*<*@example.com>*" { 
    set :lower "foldername" "${2}"; 
    fileinto :create "inbox.${foldername}"; 
} elsif header :index 2 :matches "Received" "*<*@example.com>*" {  
    set :lower "foldername" "${2}"; 
    fileinto :create "inbox.${foldername}"; 
} 
... 

ve ben yukarıdaki örnekte desen seçtiniz yüzden:

BCC için

Genellikle böyle bir şey yapmak sıralama . Ayrıca, bazen Alınan üstbilgilerdeki sayılar değişebilir, bu yüzden en azından iki farklı olanı test ederim.

0

XY Sorununuz var. Burada yapmak istediğiniz şey, üstbilgilerdeki adrese değil, teslim edilen adrese göre filtredir. (Olması gerektiği gibi, başlıklardaki adresin, teslim alındığı adresle hiçbir ilgisi olmayabilir, bu da Bcc'nin nasıl çalışabileceğidir.)

Gerçek SMTP zarfına karşı test etme komutu envelope.

require "envelope"; 
if envelope :localpart :is "to" ["nameA", "nameB", "nameC"] { 
    redirect "<my private email address>"; 
    stop; 
} 

Bu, tüm postaları idare edecek bakılmaksızın posta başlıklarını veya olmasın gösterilmesini bakılmaksızın, bu isimler teslim ediliyor.

İlgili konular