Çarşamba, Mayıs 28, 2014

Sieve and managesieve on redhat EL 6 with Dovecot 2.0.9


Last time , I applied LDA deliverey on our MTA instead of procmail.

let's try to add sieve funtions to dovecot.


first, stop everything :)


# service stop postfix

# service stop dovecot


after that you must install dovecot pigeonhole with



# yum install dovecot-pigeonhole



after that, go to dovecot/conf.d directory.
1. Edit your 15-lda.conf file and 
uncomment plugins parameter in protocol lda seciton:



mail_plugins = $mail_plugins sieve 


We have aditional two files in here for sieve configuration, 20-managesieve.conf and 90-sieve.conf.

2. Go to 90-sieve.conf file and edit parameters below:

sieve = /var/sieve-scripts/%u.sieve
sieve_dir = /home/vmail/domains/sieve/%n/.sieve
Note:
 %u user     full username (e.g. user@domain)
 %n username user part in user@domain, same as %u if there's no domain
 %d domain   domain part in user@domain, empty if user with no domain

3. In 20-managesieve.conf file uncomment

  protocols = $protocols sieve

and 

 inet_listener sieve {
    port = 4190


  }
lines and add this parameters end of  file
plugin {
  # Used by both the Sieve plugin and the ManageSieve protocol
  sieve = /var/sieve-scripts/%u.sieve  
  sieve_dir = /home/vmail/domains/sieve/%n/.sieve
}


* Our mail_location is mbox:/home/vmail/domains/%d/%u and there is no mail_home config parameter. Home directory is come form OpenLDAP field (Jamm schema)

and scripts folder is like this.
drwxr-xr-x 2 vmail vmail 4096 May 28 14:43 /var/sieve-scripts 

And start everything
# service start postfix
# service start dovecot

I suggest , you must do change delivery method to LDA , so after that install sieve things. If you have any webmail interface like roundcube, afterlogic , you can install managesieve plugin or filter plugin than you can start create your filters.

Cuma, Mayıs 23, 2014

Convert mail delivery from Procmail to Dovecot 2.0.9 on Redhat EL 6


Maybe you installed this like MTA system

http://wanderingbarque.com/howtos/mailserver/mailserver.html

or

http://www.stefan-seelmann.de/wiki/mailserver-postfix-dovecot

So i installed this MTA system but our delivery method remained procmail. Last two days i try to change delivery system promail to dovecot, after thart i installed dovecot-pigeonhole sieve manager, so users can create their own filters or etc. Before that there is no need just like these thing , everybody is happy.

HowTo :

first stop everything,

service stop postfix
service stop dovecot

ok these are steps of procmail to dovecot

1. in main.cf

change mailbox_command to

mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"


change virtual_transport to 
virtual_transport = dovecot
and add
dovecot_destination_recipient_limit = 1

2. in master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}

in this example our user is vmail you must change with your own.


3. in dovecot/conf.d/15-lda.conf  add log file values
protocol lda
{
  log_path = /var/log/dovecot-lda-errors.log
  info_log_path = /var/log/dovecot-lda.log
  debug_log_path = /var/log/dovecot-lda-errors.log
}
maybe all these log values are not neccessary but it works :) i didn't touch them.

4. in dovecot/conf.d/10-master.conf uncomment mod and user, remember vmail is our user in here

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Its default
  # permissions make it readable only by root, but you may need to relax these
  # permissions. Users that have access to this socket are able to get a list
  # of all usernames and get results of everyone's userdb lookups.
  unix_listener auth-userdb {
    mode = 0600
    user = vmail 
    #group = 
  }


finally start everything 

service start postfix
service start dovecot

that's it.

i hope helps someone else.

Çarşamba, Kasım 20, 2013

BIND DNS Subdomain Settings For Office 365

When you have BIND DNS server with subdomains, and you want to add Office 365 e-mail server settings one of the subdomains, you need add to records below in your master zone dns file.
;
; Microsoft Office 365
;
mysubdomain.domain.com.tr.         IN      MX             0 mysubdomain-comain-com-tr.mail.protection.outlook.com.

mysubdomain.domain.com.tr.         IN      TXT             "v=spf1 include:spf.protection.outlook.com -all"

 autodiscover.mysubdomain.domain.com.tr.    IN      CNAME   autodiscover.outlook.com.

sip.mysubdomain.domain.com.tr.     IN      CNAME   sipdir.online.lync.com.
lyncdiscover.mysubdomain.domain.com.tr.    IN      CNAME   webdir.online.lync.com.
;
; Microsoft Lync Online
;
_sip._tls.mysubdomain.domain.com.tr.        IN      SRV 100 1 443 sipdir.online.lync.com.
_sipfederationtls._tcp.mysubdomain.domain.com.tr.   IN      SRV 100 1 5061 sipfed.online.lync.com.
msoid.mysubdomain.domain.com.tr.   IN      CNAME   clientconfig.microsoftonline-p.net.
;



Pazartesi, Ekim 07, 2013

SQL Server Index Fragmentation Monitoring

Hi,

This is the very simple monitoring command for sql server. Of course you must create a mail profile.


DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)

SET @xml = CAST(( SELECT Object_name(object_id) as 'td',s.name as 'td1'
,LTRIM(Str(avg_fragmentation_in_percent, 25, 3)) as 'td2'
FROM sys.dm_db_index_physical_stats (DB_ID('AdventureWorks2012'), NULL, NULL , NULL, 'LIMITED') d
join sysindexes s on d.object_id = s.id
and d.index_id = s.indid
and avg_fragmentation_in_percent > 30 and s.name is not null
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

SET @body =' < html >< body >< H 3>Index Fragmantetion Results< / H3 >
< table border = 1 >
< tr >
< th > Table Name < /th> Index Name < /th> Avg. Rate  < /tr >'    

SET @body = @body + @xml +'< /table>< /body>< /html>'
SET @body = REPLACE(@body,'td1','td')
SET @body = REPLACE(@body,'td2','td')

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'dbmail', -- you have to create this
    @recipients = 'mail@mail.com.tr',
@body = @body,
    @body_format ='HTML',
--@execute_query_database='AdventureWorks2012', --maybe necessary
    @subject = 'Index Monitoring' ;

Salı, Nisan 19, 2011

PDFCreator AutoSave Folder Reset at Windows 2008 R2

Just Set

Under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program Key SEt Auto-Save folder value.


Pazartesi, Mart 14, 2011

Simple OnAccess Scan Solution For Clamav in Redhat

Clamav is powerfull antivir solution for linux. But if you wantto add onaccess scan functionality of clamav you maus re-compile your kernel with DazukoFS. I think it is quite diffucult process for running systems.


There is another alternative for this with inotify tools. Here is the steps;

1. Instal ClamAv for linux.
2.Install intotify tools for linux
2.1. wget http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz/download
2.2 goto inotify source inotifywait.c line 310
2.3 add this lines before " fflush( NULL );" atom

static char * scanfiles;
nasprintf( &scanfiles, "%s%s",inotifytools_filename_from_wd( event->wd ), event->name );
char command[1000];
strcpy (command,"/usr/local/clamav/bin/clamscan -r --remove ");
strcat (command,scanfiles);
system(command);

2.4 goto instalation dir of inotify tools
2.5 run
./configure
make
make install
2.6 goto rc.local add this line

nohup /usr/local/bin/inotifywait -qq -r -m -e create,close_write /watch_folder_name/ > /dev/null &


also you can add these parameters before folder name , if you have joomla or another application

--exclude "refTableSQL/* --exclude "cache/*" (quotas must be include)

and that's it. When new file created or replaced , or whatever event ocuured, clamav scan these files.

I hope that this is helpfull for anyone.

Çarşamba, Ağustos 25, 2010

The Mars

Nihayet, uzun zamandır planladığım siteyi açtım.


www.iwanttogotomars.org

...

Pazar, Aralık 06, 2009

The module “jscript.dll” DllregisterServer failed with error code 0×80004005

Zalim bir virus darbesinden sonra bu hatayı alıyorsanız, Windows media player ını açılmıyorsa, Search ekranınız boş geliyorsa ve gecenin bir vakti çözüm arıyorsanız işte altenatif çözüm:


1.http://support.microsoft.com/kb/313222#Fixed adresine gidip , Microsoft fix it dosyasını indiriniz ve çalıştırınız. ( ah microsoft ah!)
2. Daha sonra bilgisayarınızı restart ediniz.
3. Başlat -> Çalıştır -> regsvr32 jscript.dll yazınız.
4. Media Player 'ı çalıştırınız.

gece saat01 itibariyle sorunum çözüldü.


Salı, Temmuz 25, 2006

regenerative dentistry

Galiba çok kısa bir süre içinde bu terimi sıkça duyacağız. yılardır benim de hayalim olan; diş dolgusu, kanal tedavisi, iğrenç çürüklerden kurtulup, çürüyen pis :) dişimizin yerine , yenisini çıkartabileceğiz. http://www.odontis.co.uk/ adresinden detaylar öğrenilebilir.

Salı, Nisan 04, 2006

Sıradaki Şarkıyı Kankama Gelsin.

Kral tv gençliğinin mottosu olsun bu. öneriyorum buradan.adamlar 6 kelimelik bir cümlenin başıyla sonundaki zaman, şahıs ve diğer herşeyi nasıl bu kadar anlamsız hale getiriyorlar anlamıyorum.Ya da cep telefonlarını spellchecker falan yazalım hizmet olsun.

Forms Reports Services on Redhat EL4

iki ayımı vererek, üzerinde türlü hileler denediğim ve şu an sağlıklı şekilde çalıştırmayı başardığım OracleAS FormsReports servisi, en nihayetinde , oracle' dan aldığım destekle de PDF raporlarımı da türkçe çıkarmaya başladı.
$ORACLE_HOME/guicommon/tk90/admin altında bulunan dosyalarda çeşitli varyasyonları deneyerek çözümü bulduk.Oracle' ın en güzel tarafı bütün konfigürasyonun text tabanlı dosyalarla yapılabiliyor olması. Ancak Reports designer' ın Paper ve Web layout yapısını hala anlamadım. O yüzden raporları 6i da yapıp , 10g de kaydediyorum.(Ne kadar saçma) . En azından OWA üzerinde gelen maillerle kullanıcılar raporlarını , şifre ile alıp , isterce yazıcıdan çıktılarını alabiliyorlar.

Perşembe, Şubat 09, 2006

Invalid Parameter used, image from memory stream ... doh!

Geçenlerde, network kamera ile uğraşırken, .NET de İmage'i MemoryStream' e ,Memory stream ' i image ' e çevirmeye çalıştığımda sürekli bu hatayı aldım.Daha doğrusu client-server mimarisinde işlem yapmaya çalışırken, resimleri networkten aktarmaya çalışıyordum.

Network Cam ----> TCP Server ------> TCP Client

Şeklinde çalışan bir sistemde, resim nasıl alacağız ? SocketClient a data geldiğinde bufferın boşalana kadar resim datasını byte byte okumayı denedim. O zaman sorunum çözüldü.

Client:

String strMessage = System.Text.ASCIIEncoding.ASCII.GetString(pSocket.GetRawBuffer,0, pSocket.GetMessageLength); //

if (strMessage.Length > 0)
{

for(int g=0;g‹psocket.getmessagelength;g++)
{

if (recv==0)
{
data[g]=pSocket.GetRawBuffer[g];
}
else
{
data[pos]=pSocket.GetRawBuffer[g];
}
pos+=1;
}
recv += 1;
MemoryStream str = new MemoryStream(data);
c = Image.FromStream(str);
if (pSocket.GetMessageLength ‹ pSocket.GetSizeOfRawBuffer)
this.p1.Image =c;
}
}


server :


string sURL = "http://"+strMessage.Trim();
string t ="";
for(int j=0;j‹ sURL.Length;j++)
if (s!="\0")
{
s=sURL.Substring(j,1); t+=s;
}
}
WebRequest request;
request = WebRequest.Create(t);
request.Credentials = new NetworkCredential("root","root");
Stream stream;
stream = request.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(stream);
try
{
if(stream!= null)
{
Image img = Image.FromStream(stream);
//img.Save(@"C:\test1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] b = new Byte[0];
b = convertImageToByte(img);
pSocket.Send(b);
}
}
catch
{
}

Pazartesi, Şubat 06, 2006

LEADTOOLS HylaFax

Piyasada fax göndermek için bir çok fax sunucu yazılımı var. çoğuda paralı. Ama bir de HylaFax varmış. Hem beleş, hemde linuxda çalışan harika bir yazılım.Yaz ortasında , C#, LeadTools ve HylaFax , PdfCreator dörtlüsüyle güzel bir proje gerçekleştirdik.

Web üzerinde ve desktop tan hem tarayıcıdan hemde word belgesi ya serbest yazıyla fax gönderilmisini sağlayan bir otomasyon kurduk.

Web tabanlı uygulama ve bir web servisiyle , kullanıclar word belgelerini server a atıp, orda Word objects kullanarak dökümanlarını pdf çevirip , fax gönderebiliyorlar. Aslında biraz karışık bir sistem.HylaFax ınçalışıtığı makinayla web servisin çalıştığı maki arasında samba ile mapping var. Word dosyaları burada PdfCreatorle pdf e çevrildikten sonra , oracle üzerinde shel komutu çalıştırarak fax mesajlarını gönderiyorlar. Taracıyı kısmında Twain datasını image olarak kaydedip leadtools u kullanara FaxTiff e çevirip yine aynı şekilde fax mesajları gönderiliyor.

Bu sistemle bugüne kadar 10.000 üzerinde fax çekilmiş durumda.

DYMO ve 20000 etiket

Geçen sene kurum içinde kullanılmak üzere geliştirdiğim demirbaş otomasyonunda kullandığımız DYMO LM450 ile yaklaşık olarak 20000 adet etiket başmışız. Geçen hafta arıza için servise gönderdiğimizde , artık printer için bir şey yapılamayacağını söylemişler.

Dymo LM450 nin özelliği, desktop için kullnılan , klavyesi de olan, istenilen datayı kendi etiketlerine basabilmesi.

Demirbaş uygulamasında en büyük problem etiketin uzunluğu ayarlabilmek ve yazıcının düşük özellikli termal başlığından barkod ve resim basabilmekti.

Brush br = new SolidBrush(Color.Black);
if (m_change_settings)
{
EtiketPrinterSettings sd = new EtiketPrinterSettings();
PrinterData pss = new PrinterData();

pss.Duplex = PageDuplex.DMDUP_SIMPLEX;
pss.Size = PaperSize.DMPAPER_USER;
pss.source = PaperSource.DMBIN_FORMSOURCE;
pss.Orientation = PageOrientation.DMORIENT_LANDSCAPE;
sd.MyEtiketUzunluk = m_e_uz;
sd.MyEtiketWidth = m_e_w;
sd.ChangePrinterSetting(m_PrinterName,pss);
}

if (m_show_image)
{

Bitmap bmp = new Bitmap("amblem.bmp");
g.DrawImage(bmp, 0, 0 , 50, 50);

g.DrawString( m_Header , m_PrintFont, br, 40, 0);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 52, 10);
//g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, rfet);
}
else
{
g.DrawString(m_Header , m_PrintFont, br, 5, 5);
m_BarcodeFont = new Font("CarolinaBar-25F2", 10);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 10, 13);
if(m_ShowHumanReadable)
{
g.DrawString(m_label_info, m_PrintFont, br, 5, 40);
}
}

yordamıyla standart graphics işlemlerini kullanrak printerdan çıktıları alıyorum. Buradaki EtiketPrinterSettings nesnesi intenet ve microsofta bulunabilen standart winspool.drv implementasyonu. Etiket boyuda standar DEVMODE içinde tanımlı değişkenlerden ayarlanabiliyor.

Cuma, Ocak 20, 2006

Tutsak ©



Büyük ihitmalle bu yıl içinde , üzerinde 4 yıldır çalıştığımız, grafik novel "tutsak" piyasada olacak.

Oracle Lite9i

Eski projeleri anlatmaya devam.

2002 yılında Türkiye'de oracle lite9i ile yapılmış proje ve oracle 'ın elinde bu işle ilgili referans yoktu. İpragaz, bayilerine yönelik olarak başlattığı CRM uygulamasını sahada takip etmek istiyordu. ve bu işi mobil cihazlarla yapmak istiyordu

Uygulama, DMZ üzerinde çalışan webtogo server müşteri verilerini , kişi , bölge, görev özelliklerine göre içerdeki SAP den alarak GPRS modemli EG800 lere indiriyor ve buradan da gerekli işlemleri yapılmasını sağlıyordu.

Çarşamba, Ocak 04, 2006

MAP Basic & Trimble

Bundan bir iki ay önce , gazetelerde sayısal harita üzerinden GPS kullanarak, kişilerin kendi araçlarını takip etmesini sağlayan bir ürünün reklamları vardı. 2000 yılında , MapBasic ve Trimble CrossCheck ürünlerini kullanarak, sadece yazılım geliştirme masrafı olan, küçük işletmelerin kullanacağı, internet üzerinden araç ya da benzeri hareketli cihazların takip edilmesini sağlayan bir sistem geliştirmiştim.

MapBasic , visual basic' e çok benzeyen bir dil. MapInfo tarafından oluşturulmuş, sayısal harita altlıklarını kullanarak , GIS uygulamaları gelişrilimesini sağlıyor.

Kurduğum sistemde, Trimble 'ın ürünü olan CrosCheck GSM ünitesi araçta bulunuyordu. CCGSM adından da anlşıldığı gibi, GPS verilerini işleyerek bunları, belirli bir GSM alıcısna gönderen bir modül. Ancak üzerinde, hızlimiti , bölge sınırlaması, alarm sinyali, ve diğer data girişleriyle ilgili kurallar belirleyeyer tetikleme yapılabiliyor.

Tekfen bank a kurduğumuz demoda, ve web üzerinden çalışan uygulamada, araçtan gelen koordinat bilgileriyle (burada UTM koordinatları ile ilgili çevrim yapmak gerekiyor) aracın adres bilgisi bulunarak, belirli periyodlarla, araç konumunu gösteren harita snaphot' ı kaydediliyordu böylece, periyodlar halinde aracında adresi ve haritadaki konumu öğrenilebiliyordu. Normalde ArcGIS ve MapExtrme gibi ürünlere 50K 60K $ civarında bir bedel ödenirken, bu sistemle sadece MapBasic ve Sayısal harita bedeli ödenerek küçük ölçekli bir GIS platformuna sahip olunabilyordu. Tabi iş burada pazarlamacılara kalıyor.

Cuma, Ocak 07, 2005


Eclipse Kullanıcıları Türkiye Mail Grubu açıldı.
Bu hafta itibariyle 20 kadar üyemiz oldu, Eclipse_tr olarak amacımız eclipse ortamını kullanarak, ortak bir değer yaratmak gerekirse bunu yayın, yazılım ,eğitim gibi bir içerik altında birleştirmek.


Casio IT-500 çözümleri.

Bir kaç haftadır CASIO IT-500 ün M30CR modeli ile uygulama geliştiriyorum, gerek internetteki kaynak yetersizliği, gerekse çözüm üretenlerin az olmazı sebebiyle oldukça zorlandım. Compact framework ile ilgili gerekli dökümanların yetersiz olması sebebiyle özellikle kamera ve Barkod okuma ile ilgili bilgi bulmak zor. Ayrıca kendi örneklerinde EVC++ 4.0 örnekleri mevcut.
Kamera kullanımında en önemli ayrıntı FormHandle işlemiyle ilgili , C++ örneklerinde kamera önizlemesinin yapılacağı formun handle 'ı nın kullanmak gerektiği gözüküyor.

case WM_INITDIALOG:
// trying to center the About dialog
if (GetWindowRect(hDlg, &rt1)) {
GetClientRect(GetParent(hDlg), &rt);
DlgWidth = rt1.right - rt1.left;
DlgHeight = rt1.bottom - rt1.top ;
NewPosX = (rt.right - rt.left - DlgWidth)/2;
NewPosY = (rt.bottom - rt.top - DlgHeight)/2;
// if the About box is larger than the physical screen
if (NewPosX < 0) NewPosX = 0;
if (NewPosY < 0) NewPosY = 0;
SetWindowPos(hDlg, 0, NewPosX, NewPosY, 0, 0, SWP_NOZORDER SWP_NOSIZE);
CAMOpen();
CAMStartPreview(hDlg,12,75,CAM_1PER9VGA);
}

Ancak burada C# implemantosyonu olan
[DllImport("CoreDll")] public static extern IntPtr FindWindow( string className, string WindowsName);
fonksiyon doğru handle ı döndürmüyor. Halbuki dökümanlarda FindWindow ve GetActiveWindow, GetDesktopWindow, GetForegroundWindow fonksiyonlarının doğru HWND değerini dödürdüğü yazıyor.
Casio da kullanılacak gerçek fonksiyonu
[DllImport("coredll.dll")] public static extern IntPtr GetForegroundWindow();
Olarak değiştirince kamera sağlıklı biçimde kullanılıyor.

Benzer şekilde Barkod okuma içinde kaynak çok sınırlı.
Form KeyDown event inde
iRet = LCUDRV.OBRGets(buff,ref Barcode,ref dwLeng);
ile okuyucu buffer ı alınarak ,
Encoding.ASCII.GetString(buff,0,buff.Length);
kullanılarak okunan bilgi alınıyor. burada buffer[1024] boyutlarında.

Genel olarak Cihaz iyi çalışıyor ve isteklere iyi cevap veriyor. Daha detaylı bilgi almka isteyen benimle irtibata geçebilir.

Cuma, Aralık 03, 2004

Oracle ' da içiçe prosedür oluşturma.

ODP.NET ve C# kullanırken karşılaştığım bir problem var. ODP.NET sadece ref cursor yapısını destekliyordu. Ancak yazdığım uygulamada ; bir departmandaki kişinin birden fazla dahili telefon numarası olabiliyordu.

Çözümü Refcursor ile recordseti döndürüken, bu set içindeki bir column' da CLOB yada VARCHAR2 tipinde bir fonkisyon içinde getirerek buldum.