เมื่อไม่นานมานี้ฉันเริ่มปรับปรุงกฎของตะแกรงและไม่แน่ใจเกี่ยวกับวิธีการ:contains
ใช้งานจริง ฉันเช็คเอาต์http://sieve.mozdev.org/reference.htmlแต่ก็ยังไม่ได้ตอบคำถามที่ฉันมี
พูดว่าฉันมีกฎต่อไปนี้:
if
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] [
"ros-dev.reactos.org",
"ros-general.reactos.org"
]
{
fileinto "Lists/ReactOS";
stop;
}
สิ่งนี้หมายความว่า (และเป็นความคิดของฉันว่าฉันต้องการให้ทำงานอย่างไร) โดยอัตโนมัติว่าฟิลด์ส่วนหัวใด ๆในรายการ["List-Id", "X-Mailinglist", "X-Mailing-List"]
ควรมีค่าใด ๆที่ระบุไว้["ros-dev.reactos.org", "ros-general.reactos.org"]
หรือต้องการฉันต้องพูดอย่างif anyof (...)
นี้:
if anyof (
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] [
"ros-dev.reactos.org",
"ros-general.reactos.org"
]
)
{
fileinto "Lists/ReactOS";
stop;
}
... สำหรับผลลัพธ์ที่ต้องการนี้ไหม หรือทั้งสองรายการไม่ตรงกับองค์ประกอบของครั้งแรกกับองค์ประกอบของรายการที่สองแต่ละ อยู่แล้ว ?
หมายเหตุ:ฉันรู้ว่าเงื่อนไขที่คั่นด้วยเครื่องหมายจุลภาคได้รับผลกระทบanyof
และallof
ตามลำดับ ดังนั้นif anyof (condition1, condition2)
หมายความว่า (นามแฝงรหัส) if (condition1 or condition2)
และวิธีการif allof (condition1, condition2)
if (condition1 and condition2)
การเข้าใจแง่มุมนี้ไม่ใช่ปัญหาของฉัน
สิ่งที่ฉันไม่เข้าใจ แต่ไม่ว่าจะเป็นanyof
และallof
ตามลำดับมีอิทธิพลต่อการอย่างใดอย่างหนึ่งหรือทั้งสองของรายการใน:contains
ข้อ ในตัวอย่างด้านบนมีรายการสำหรับฟิลด์ส่วนหัวและรายการค่าที่จะเปรียบเทียบ
เป็นหลักคำถามเดือดลงไปหรือไม่ว่ามีความแตกต่างทางความหมายระหว่างสองตัวอย่างข้างต้น และถ้าไม่เช่นนั้นคนแรกหมายถึงสิ่งนี้หรือไม่:
if anyof (
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] "ros-dev.reactos.org",
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] "ros-general.reactos.org"
)
{
fileinto "Lists/ReactOS";
stop;
}
... หรือสิ่งนี้:
if allof (
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] "ros-dev.reactos.org",
header :contains ["List-Id", "X-Mailinglist", "X-Mailing-List"] "ros-general.reactos.org"
)
{
fileinto "Lists/ReactOS";
stop;
}
... หรืออย่างอื่นโดยสิ้นเชิง