این دستور gurgitate-mail است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
gurgitate-mail - یک فیلتر ایمیل با استفاده آسان
خلاصه
پست الکترونیکی
شرح
"gurgitate-mail" برنامه ای است که نامه های شما را می خواند و بر اساس آن فیلتر می کند
.gurgitate-rules.rb فایل در فهرست اصلی خود فایل پیکربندی از دستور Ruby استفاده می کند
و بنابراین کاملاً انعطاف پذیر است.
به طور کلی یا از طریق شما فراخوانی می شود .رو به جلو فایل:
"|/path/to/gurgitate-mail"
یا از طریق شما .procmailrc فایل:
: 0:
| /path/to/gurgitate-mail
از طرف دیگر، اگر سیسادمین سایت خود هستید، یا سیسادمین شما دوستانه است، می توانید
از gurgitate-mail به عنوان یک نماینده تحویل محلی استفاده کنید. برای postfix قرار دهید
mailbox_command=/opt/bin/gurgitate-mail
in /etc/postfix/main.cf. اگر از MTA دیگری استفاده می کنید، و gurgitate-mail را به عنوان یک پیکربندی کنید
نماینده تحویل محلی، لطفا به من بگویید چگونه! من می خواهم این را در اسناد وارد کنم.
پیکربندی فایل ها
سه فایل پیکربندی وجود دارد که توسط gurgitate-mail استفاده میشود: دو فایل در سطح سیستم و فایل
سوم، فایل قوانین کاربر است.
دو فایل پیکربندی کل سیستم هستند /etc/gurgitate-rules و
/etc/gurgitate-rules-default. اینها قبل و بعد از قوانین کاربر پردازش می شوند،
بود.
/etc/gurgitate-rules برای رسیدگی به نیازهای فیلترینگ در کل سیستم استفاده می شود: تنظیم پیش فرض
سبک صندوق پستی به Maildir به جای Mbox پیش فرض، تنظیم دایرکتوری قرقره، چیزها
مثل این
فایل پیکربندی کاربر است $HOME/.gurgitate-rules (یا ، یا ،
$HOME/.gurgitate-rules.rb. یا کار). شما قوانین خود را در اینجا قرار دهید. اگر کاربر
فایل پیکربندی در حین پردازش با "بازگشت" روبرو نمی شود، سپس با فایل اضافی
قوانین مندرج در /etc/gurgitate-rules-default اجرا می شوند. اگر آن هم برنگردد،
سپس پیام های ایمیل در محل قرقره نامه پیش فرض ذخیره می شوند.
اگر از گزینه "-f" در خط فرمان استفاده شود، از فایل مشخص شده استفاده می شود و
قوانین پیش فرض نخواهد بود. گزینه "-f" را می توان بیش از یک بار استفاده کرد:
gurgitate-mail -f test-rules -f اضافی-قوانین
پیکربندی پارامترهای
چندین پارامتر وجود دارد که میتوانید برای تغییر نحوه ارسال نامههای ارسالی تنظیم کنید
رفتار می کند. شما یک پارامتر پیکربندی را با گفتن به عنوان مثال تنظیم می کنید:
ارسال ایمیل "/usr/sbin/sendmail"
که پارامتر "sendmail" را روی "/usr/sbin/sendmail".
maildir
دایرکتوری که می خواهید پوشه های نامه را در آن قرار دهید. این به طور پیش فرض $HOME/Mail است.
ورود به سیستم فایل
جایی که رفتید پیامهای ورود به سیستم gurgitate-mail برای رفتن. مکان استاندارد برای
این $HOME/.gurgitate.log است
ارسال پست الکترونیکی
مسیر کامل برنامه sendmail که برای تحویل نامه استفاده می شود. این می تواند هر برنامه ای باشد
که به عنوان پارامترهای خود لیستی از آدرس ها را برای تحویل نامه دریافت می کند و این کار را انجام می دهد
یک پیام ایمیل در ورودی استاندارد.
خانه دار
مسیر کامل فهرست خانه شما. این برای خانه واقعی شما پیشفرض است
دایرکتوری است.
spooldir
مسیری که قرقره های ایمیل سیستم به آن می رود. این به طور پیش فرض روی "/var/spool/mail".
در سیستم Maildir، این باید به همان "homedir" تنظیم شود.
spoofile
جزء فایل قرقره نامه از مسیر کامل قرقره نامه شما. این به طور کلی است
نام کاربری شما. کاربران Maildir باید این را روی "Maildir" تنظیم کنند.
پوشه
سبک پوشه هایی که ترجیح می دهید. این می تواند (در حال حاضر) MBox یا Maildir باشد.
FILTER قوانین
قوانین فیلتر مجموعه ای از عبارات روبی هستند که متدها و متغیرهای زیر را در بر می گیرند
در دسترس:
متغیر
از این شامل پاکت "از" آدرس پیام ایمیل است. (توجه داشته باشید که این
لزوماً با محتوای هدر "From:" یکسان نیست)
هدر
این یک شی حاوی سرصفحه های پیام است. چندین روش وجود دارد
که با این شی می آید:
body این شامل متن پیام ایمیل است. در حال حاضر، واقعا چیزی وجود ندارد
جالب است که می توانید با این کار انجام دهید، جدا از اختصاص دادن به آن. می توانید بازنویسی کنید
متن یک پیام ایمیل از این طریق. برخورد با پیوست ها برای الف برنامه ریزی شده است
انتشار آینده "gurgitate-mail".
maildir
دایرکتوری که حاوی پوشهها است، زمانی که شما مشخص میکنید با روش «ذخیره» استفاده میشود
پوشه ای به عنوان "=پوشه(مانند Elm). پیشفرض روی «$HOME/Mail» است.
خانه دار
فهرست خانه شما فقط خواندنی.
ورود به سیستم فایل
محل فایل لاگ "gurgitate-mail". اگر روی "nil" تنظیم شود، هیچ ورود به سیستم وجود ندارد
انجام شده. پیشفرض «$HOME/.gurgitate.log» است.
ارسال پست الکترونیکی
مکان برنامه "sendmail". از روش "به جلو" استفاده می شود. پیش فرض به
"/usr/lib/sendmail".
spoofile
محل قرقره پست. فقط خواندنی.
مواد و روش ها
منطبقات (نام(ها)،رجکس)
اگر سرصفحه «name» با عبارت منظم «regex» مطابقت داشته باشد، «true» را برمیگرداند. اگر
"name" آرایهای از نامهای سرصفحه است، سپس اگر حداقل یکی از آنها درست باشد، مقدار صحیح را برمیگرداند
مسابقات سرصفحه برای آزمایش اینکه آیا هر دو سرصفحه "To:" و "Cc:" مطابقت دارند مفید است.
از آدرس پاکت "از" پیام ایمیل را برمی گرداند. توجه داشته باشید که این همان است
به عنوان برهنه "از".
یک HeaderBag (نوعی آرایه) با محتویات "To" و "Cc" را برمی گرداند.
سرصفحه ها
to_s طبق قرارداد روبی، تمام سرصفحه ها را به عنوان یک شی "String" برمی گرداند.
صرفه جویی(صندوق پستی)
این پیام را در یک صندوق پستی ذخیره می کند. می توانید صندوق پستی را به عنوان یک کلمه با = مشخص کنید
جلوی آن را علامت بزنید، در این صورت آن را در "maildir" قرار می دهد. اگر از
=نام فرمت، سپس باید یک نام مسیر مطلق را مشخص کنید. اگر نتواند بنویسد
به فایلی که آن را درخواست می کنید پیام دهید، سعی می کند آن را در "spoolfile" بنویسد.
فوروارد (آدرس)
این پیام ایمیل را به آدرس ایمیل دیگری هدایت می کند.
لوله (برنامه)
این پیام را از طریق "برنامه" ارسال می کند. "pipe" کد خروجی را برمی گرداند
برنامه ای که پیام از طریق آن ارسال شده است.
فیلتر (برنامه)
این پیام را از طریق "برنامه" لوله می کند و یک شی Gurgitate جدید را برمی گرداند
حاوی ایمیل فیلتر شده (این برای فیلترهای خارجی که ایمیل را تغییر می دهند مفید است
به عنوان مثال، SpamAssassin، که یک هدر امتیاز اسپم اضافه می کند.)
همچنین می توانید بگویید
فیلتر (برنامه) انجام دهید
# کد اینجاست
پایان
و شی Gurgitate تازه ایجاد شده را به بلوک می دهد.
هدر
این هدرها را به عنوان یک شی از خود باز می گرداند. این شی روش های خاص خود را دارد:
سربرگ[*headernames]
این یک HeaderBag (یک زیر کلاس از آرایه) را برمی گرداند که حاوی هدرهایی است که شما خواسته اید
برای. سپس می توانید از عملگر =~ در این نتیجه برای مطابقت با Regex RHS استفاده کنید
با همه چیز در HeaderBag.
می توانید مقدار سرصفحه را با "headers[name]=newvalue" تغییر دهید.
headers.match (نام، ریجکس)
هدر را با نام "name" در برابر regex مطابقت می دهد. این همان است
headers[name] =~ /regex/.
headers.match (نام ها، رجکس)
سرصفحه ها را با نام های "names" در مقابل regex مطابقت می دهد. این هم همینطور است
به عنوان سربرگ[*names] =~ /regex/.
سرصفحه ها.از
پاکت را از. می توانید این را با "headers.from=newaddress" تغییر دهید
بیش از حد.
برگشت
این به "gurgitate-mail" می گوید که پردازش پیام ایمیل را متوقف کند. اگر استفاده نمی کنید
"return"، سپس "gurgitate-mail" پردازش همان نامه را دوباره با
قانون بعدی اگر "بازگشت" در پایان وجود ندارد gurgitate-rules.rb، و سپس
"gurgitate-mail" پیام ایمیل را در قرقره نامه معمولی ذخیره می کند.
ورود به سیستم(پیام)
این یک پیغام گزارش را در فایل log می نویسد.
SIMPLE مثال ها
در اینجا چند نمونه از قوانین "گورگیتات پست" با توضیحات آورده شده است:
اگر از =~ /ebay.com/ سپس save("=ebay"); برگشت؛ پایان
هر ایمیلی از طرف eBay (به عنوان مثال، اعلانهای پایان حراج خودکار و پیشفروش
اطلاعیه ها) در پوشه "ebay" ثبت می شود.
اگر از =~ / ریشه@/ سپس save("=root"); برگشت؛ پایان
هر ایمیلی از ریشه (در هر میزبانی) در یک پوشه خاص ثبت می شود. مفید برای sysadmin ها
نظارت بر ایمیل crontab
if headers.matches(["To","Cc"],"webmaster@") سپس
ذخیره ("= مدیر وب سایت")
برگشت
پایان
هر ایمیلی با خط To: یا Cc: "sysadmin" در پوشه "sysadmin" ذخیره می شود. مفید
برای افرادی که دارای چندین حساب کاربری هستند که به آدرس آنها هدایت شده است.
if headers["موضوع"] =~ /\[SPAM\]/ سپس
ذخیره ("=هرزنامه")
برگشت
پایان
این یک نحو متفاوت برای تطبیق الگوها با هدرها است. شما همچنین می توانید مطابقت دهید
چندین سرصفحه در پرانتز مربع
if headers["موضوع"،"کلمات کلیدی"] =~ /یک کلمه بد/ سپس
ذخیره ("= قسم خوردن")
برگشت
پایان
"یک کلمه بد" را در سرفصل های موضوع و کلمات کلیدی جستجو می کند و اگر آنجا باشد، ذخیره می کند
ایمیل موجود در پوشه "قسم خوردن".
if headers.matches(["To","Cc"],"[ایمیل محافظت شده]") سپس
pipe("|rcvstore +mailing-list")
برگشت
پایان
هر ایمیلی به لیست پستی از طریق "rcvstore" ارسال می شود تا در یک پوشه MH ذخیره شود.
که
headers.matches (["به"،"Cc"]،/regex/)
اصطلاح به قدری اتفاق می افتد که مختصری برای آن وجود دارد:
اگر به =~ /[ایمیل محافظت شده]/ سپس
pipe("|rcvstore +mailing-list")
برگشت
پایان
نامه را از طریق "rcvstore" به لیست پستی ارسال می کند.
ADVANCED مثال ها
در اینجا چند مثال هوشمندانه تر وجود دارد تا به شما ایده دهد که با چه کارهایی می توانید انجام دهید
"گورگیت پست". فرض کنید یک لیست سفید ایمیل در فایلی به نام دارید
$HOME/.friends، بنابراین می توانید تعیین کنید که آیا برخی از ایمیل ها احتمالاً هرزنامه هستند یا خیر.
سپس اگر شخصی در لیست سفید شما برای شما ایمیل ارسال کند، آن را به طور خودکار در آن ذخیره می کنید
پوشه "صندوق ورودی":
friends=homedir+"/.friends"
اگر FileTest.exists؟(friends) و FileTest.readable؟(friends)
File.new(friends).each do |friend|
if from =~ friend.chomp then
ورود به سیستم "ایمیل از دوست" +friend.chomp
ذخیره ("=صندوق ورودی")
برگشت
پایان
پایان
پایان
بسیار خوب، اگر کسی برای شما ایمیل بفرستد، و به طور خاص به شما خطاب شده باشد (و بفرمایید-
نامه قبلاً آن را به شکل دیگری دریافت نکرده است)، پس ممکن است هرزنامه باشد یا نباشد: آن را قرار دهید
در یک پوشه "خاکستری":
my_addresses= [/me@example\.com/i,
/me@example\.org/i،
/me@example\.net/i]; # من سه آدرس ایمیل دارم
my_addresses.each do |addr|
if headers.matches(["To","Cc"],addr) سپس
ذخیره ("=احتمالاً-نه-هرزنامه")
برگشت
پایان
پایان
و بعد از آن، اگر از طرف کسی که میشناسید نباشد و آدرس ایمیل شما نباشد
آدرس هر دو، پس احتمالاً ذخیره می شود تا فرض شود هرزنامه است:
ذخیره ("=هرزنامه")
برگشت
این را می توان با استفاده از فیلتر بیزی بهبود بخشید. به عنوان مثال، اریک ریموند
برنامه bogofilter (http://bogofilter.sourceforge.net) را می توان به طور خودکار آموزش داد و
با کمک تمایز سفید / خاکستری / سیاه استفاده می شود. با در نظر گرفتن مثال بالا، این کار را خواهم کرد
آن را با افزودن تماس ها به bogofilter تنظیم کنید:
friends=homedir+"/.friends"
اگر FileTest.exists؟(friends) و FileTest.readable؟(friends)
File.new(friends).each do |friend|
if from =~ friend.chomp then
ورود به سیستم "ایمیل از دوست" +friend.chomp
pipe("bogofilter -h") # <-- LINE ADDED HERE
ذخیره ("=صندوق ورودی")
برگشت
پایان
پایان
پایان
"bogofilter -h" bogofilter را آموزش می دهد که ایمیلی از افراد در لیست سفید نباید ارسال شود
هرزنامه در نظر گرفته شده است. بسیار خوب، در پایان قوانین .gurgitate، تغییر دهید
ذخیره ("=هرزنامه")
برگشت
به
ذخیره ("=هرزنامه")
لوله ("bogofilter -s")
برگشت
این "bogofilter" را آموزش می دهد که هر چیزی که از بقیه فیلتر عبور نمی کند باید باشد
هرزنامه در نظر گرفته شده است. حال برای بیت جالب: بیت بین اینها را برای استفاده تغییر دهید
"bogofilter" برای تصمیم گیری در مورد اینکه آیا ایمیل باید اسپم در نظر گرفته شود یا خیر:
my_addresses= [/me@example\.com/i,
/me@example\.org/i،
/me@example\.net/i]; # من سه آدرس ایمیل دارم
my_addresses.each do |addr|
if headers.matches(["To","Cc"],addr) سپس
if pipe("bogofilter")==1
سپس
log ("bogofilter مشکوک است که ممکن است هرزنامه نباشد")
ذخیره ("=احتمالاً-نه-هرزنامه")
دیگر
log ("bogofilter فکر می کند احتمالاً هرزنامه است")
ذخیره ("=هرزنامه")
پایان
برگشت
پایان
پایان
"bogofilter" اگر فکر می کند پیام هرزنامه نیست دارای کد خروج "1" است و اگر پیام را "0" می داند.
فکر می کند پیام اسپم است.
امیدواریم این به شما ایده ای از انواع چیزهایی که می توانید استفاده کنید بدهد
"bogofilter" برای.
از gurgitate-mail به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید
