Feeds:
Posts
Comments

Archive for March, 2009

Bagi teman-teman yang mempunyai tugas sebagai Lotus Domino Administrator, membatasi pengiriman lampiran bagi pengguna di tempat anda adalah hal yang sangat di perlukan, terlebih lagi bila bandwith dan mesin server Lotus Domino Anda telah masuk dalam kategori C Spasi D.

Saya pernah liat contoh, macetnya router task di sebabkan oleh salah satu pengguna yang mengirimkan email dengan lampiran di atas 10 Mb dan di kirim ke seluruh user. Dampaknya adalah server macet dan sibuk sejadi-jadinya. Itu server di restart berkali-kali juga nggak akan nolong. Ibarat the Bank Central di guyur milyaran dollar juga nggak akan nolong keluar dari krisis. 😀
Solusinya, matikan dulu domino server, simpan mail.box di tempat yang aman, hapus semua email dengan lampiran di mail.box tadi, kembalikan ke tempat semula dan jalankan kembali domino server. Jalan lagi deh.
Mau lebih aman lagi? jalankan script untuk menghapus email-email yang telah terkirim tadi. Lain kali saya akan share script untuk keperluan ini.

Nah, kalau sudah begini kita nggak bisa salahkan pengguna, lha wong dia cuma klik sini, klik di situ, klik atas, klik bawah, 1 Mb, 10 Mb, 100 Mb, nggak tau bedanya dia, yang dia tau klik send, beres deh. Mirip orang-orang mondar – mandir cari utangan ke Bank, lha dia sendiri juga nggak tau apakah nantinya akan mampu bayar….

Satu contoh lagi, ada pengguna yang kirim lampiran lebih dari 40 Mb dan di kirim ke group. Tapi kebetulan Servernya dan Bandwitdhnya mantap sehingga nggak menganggu operasional, tapi dia di maki-maki sama puluhan orang, konyolnya lagi, orang2 yang memaki-maki dia “reply to all“, jadinya satu hari cuma liat email ngurusin hal ini.ha ha ha ha.

oke, kembali ke pokok permasalahan,

Oleh karena contoh inilah, selain pembatasan ukuran email masuk, pembatasan email keluar per email juga sebaiknya di lakukan.

Namun sayangnya pembatasan jumlah ukuran lampiran email keluar hanya bisa di lakukan per-server.
Contohnya, bila satu mail server telah di set untuk membatasi pengiriman maksimum 5 Mb per email, maka rules ini akan berdampak ke semua user yang terdaftar di email server ini.

Bagaimana bila di inginkan, saya sebagai domino administrator hendak membatasi pengiriman lampiran user saya berdasarkan group?

Misalnya, group terdiri dari 4 kelompok berdasarkan level jabatan hanya boleh mengirimkan jumlah total lampiran seperti yang tertulis di bawah ini:

Group Standard user, hanya boleh mengirim lampiran di bawah 3 Mb,
Group Manager < 5 Mb,
Group BOD < 10 Mb,
Group Owner < 15 Mb

Fitur Server Rules, memungkinkan untuk memfilter email yang akan di kirimkan apakah melebihi ukuran yang telah di tetapkan,

Namun sayangnya akan sangat repot sekali membuat filtering untuk tujuan berdasarkan group seperti daftar group di atas, bila di paksakan akan sangat mempengaruhi beban server.

Untungnya, Lotus Notes Email mempunyai kode sumber (source code) yang terbuka (open), sehingga bebas untuk di lakukan modifikasi. Yang kita akan lakukan adalah memodifikasi Email Template.

Cara kerjanya adalah, ketika pengguna akan mengirim email dengan menekan tombol send, maka sebelum email di kirimkan, kita akan sisipkan logic formula yang akan mencek jumlah size total lampiran dan men-cek nama group apakah kita di perbolehkan mengirim email di bawah batas yang telah di tentukan.

Lebih terinci: kita akan membuat shared field, di mana share field ini akan mengandung logic untuk melakukan filtering. Share field ini akan kita sisipkan di form “Memo”, “Reply”, dan “Reply with history and attachments”

Pertama-tama yang mesti Anda sebagai Domino Administrator lakukan adalah membuat daftar group bila belum ada.
Dari contoh di atas, Group Standard User tidak perlu di buat, karena pada umumnya standard user memiliki user yang terbanyak di bandingkan 3 group lainnya yang di telah di sebutkan di atas.

Pastikan Anda mempunyai Domino Designer, dan gunakan ID Domino Admin atau ID yang lainnya yang memperbolehkan membuka email template. Hati-hati kita akan merubah email template. Backup dan simpan baik-baik email template yang sekarang ini di gunakan. Contoh email template yang di gunakan adalah mail7.ntf, mail8.ntf atau mail85.ntf tergantung dari versi server dan versi email yang digunakan.

Dalam contoh ini, saya membuat email template baru yang saya beri nama mail85m1.ntf yang merupakan new copy dari mail85.ntf

create_shared_fieldsBuka Domino Designer, Buka aplikasi mail85m1.ntf atau apapun nama aplikasi email template yang akan Anda gunakan.
Bila Anda menggunakan Domino Designer versi 8.5, siap-siap akan ada banyak interface yang berubah di bandingan dengan domino designer versi sebelumnya.
Ya, karena di versi 8.5 ini, Domino Designer running on Eclipse !

Buatlah shared field, dengan membuka navigasi shared elements –> fields. Tekan tombol new shared fields.

Berikan nama field sesuai selera Anda, Sebagai contoh, saya memberikan nama field ini sebagai “AttRestrictionRules“,

Paste formula di bawah ini, dan pastikan masuk ke “input validation”, bukan masuk “default value” atau tempat lainnya!

———————————————-

REM {GTW 2009};
OneMb := 1000000;
BeingMailed:=@If(@IsDocBeingMailed;1;0);

REM {DebugFlag=0 –> Debug mode off};
REM {DebugFlag=1 –> Debug mode on};
DebugFlag:=0;

quotaStdUser:=3;

GroupNameManager := “GroupManager”;
quotaManager:=5;

GroupNameBOD := “GroupBOD”;
quotaBOD:=10;

GroupNameOwner := “GroupOwner”;
quotaOwner:=15;

AttLengths:=@If(@Attachments=0;0;@Sum(@AttachmentLengths));

msg1:=”You are attempting to send a mail item whose total size is “;
msg2:=” megabytes or greater.  Please reduce the number of attachments and/or the size of the attachment(s) so the total amount of data being sent is below “;
msg3:=” megabytes”;

G2:=@If(@Member(GroupNameManager; @UserNamesList); 1;0);
Q2:=@If(AttLengths < (quotaManager*oneMb);1;0) ;
F2:=msg1+@Text(quotaManager)+msg2+@Text(quotaManager)+msg3;

G3:=@If(@Member(GroupNameBOD; @UserNamesList); 1;0);
Q3:= @If(AttLengths < (quotaBOD*oneMb);1;0) ;
F3:=msg1+@Text(quotaBOD)+msg2+@Text(quotaBOD)+msg3;

G4:=@If(@Member(GroupNameOwner; @UserNamesList); 1;0);
Q4:= @If(AttLengths < (quotaOwner*oneMb);1;0) ;
F4:=msg1+@Text(quotaOwner)+msg2+@Text(quotaOwner)+msg3;

G1:=@If(G2:G3:G4 = 0;1;0);
Q1:= @If(AttLengths < (quotaStdUser*oneMb);1;0) ;
F1:=msg1+@Text(quotaStdUser)+msg2+@Text(quotaStdUser)+msg3;

FErrMsg:=@If (
(G2=1 & Q2=0);F2;
(G3=1 & Q3=0);F3;
(G4=1 & Q4=0);F4;
F1);

GW:=@If( (G1&Q1=1 | G2&Q2=1 | G3&Q3=1 | G4&Q4=1);”Success”;”Gagal ” + FErrMsg);
GW2:=@If( (G1&Q1=1 | G2&Q2=1 | G3&Q3=1 | G4&Q4=1);1;0);

y1:=”G1 = ” + @Text(G1) + ” G2=” + @Text(G2) + ” G3 = ” + @Text(G3) +” G4 = ” + @Text(G4);
y2:=”. Att Length = “+@Text(AttLengths)+” “+GW;
y3:=y1+y2;

GW3:=@If(DebugFlag = 1 ;@Failure(y3);
DebugFlag = 0 & GW2=1;@Success;
DebugFlag = 0 & GW2=0;@Failure(FerrMsg);@Success
);

@If(BeingMailed;GW3;@Success)

fields_formula

Sudah?

Perhatian: Liat variabel DebugFlag di atas. Bila anda menguji apakah script ini berhasil atau tidak, silahkan ganti variabel DebugFlag di atas menjadi 1.
Kotak dialog akan muncul memberi tahu kepada Anda apkah script berjalan sukses atau gagal. Apapun kondisinya email ini tidak akan terkirim, ini hanya memberikan status Success atau failure.

Silahkan masuk ke navigasi form, dan sisipkan shared field ini ke dalam form2 berikut ini:
1. form Message alias Memo
2. form Reply alias Reply
3. form Reply with history and Attachments alias Reply

Sisipkan shared field “AttRestrictionRules” di sebelah field “Classificaiton” seperti contoh gambar di bawah ini.

insert_shared_fields

Lakukan hal yang sama pada 2 form “Reply” dan “Reply with history”

Sampai di sini, Anda telah memodifikasi email template mail85m1.ntf

Kita perlu user dan mailbox nya untuk uji coba.

Pilih salah satu user, sebagai contoh user test dengan mailbox yang berada di mail\usertest.nsf
Ketikan di server console “load convert mail\usertest.nsf * mail85m1.ntf”
Atau….
dari workspace klik kanan icon mail user test, masuk ke menu Application –> Replace Design, dan pilih template Mail85M1.ntf

siap-siap untuk menguji script ini.

Bila signer dari aplikasi email template yang Anda buat tadi belum terdafar di ECL (Execution Control List) maka akan muncul kotak peringatan Execution Security Alert seperti di bawah ini:

ecl

Jangan kuatir, ini karena Lotus notes client mendapatlan perintah untuk melakukan hal-hal yang di rasakan berbahaya dan butuh konfirmasi dari Anda sebagai pengguna untuk menilainya, apakah boleh trus atau tidak. Pandulah pengguna untuk memilih “Start trusting the signer to execute this action”, bila pengguna melakukan ini maka di kemudian hari, kotak ESC tidak akan muncul kembali.

Adalah lebih baik juga sebelum di apply email ini ke seluruh user, Anda sebagai admin menjalankan policy setting untuk ECS dan tambahkan ID Domino Admin anda ke dalam list. Sehingga “memaksa” user untuk menjalankan script akal-akalan yang telah kita buat dengan susah payah :-).
Caranya? nanti deh lain kali saya akan bahas mengenai implementasi policy setting. Oke ?

Silahkan masuk sebagai user test dan coba kirim email dengan lampiran lebih dari yang telah di tetapkan yaitu 3 Mb.

failuremsg1

Bila ingin di implementasikan ke seluruh user, ketikan di server console:

“load convert mail\*.* * Mail85M1.ntf”

Oya, script ini hanya berjalan di Notes Client, untuk versi web atau iNotes tidak berlaku.

Semoga bermanfaat,

Read Full Post »

Untuk teman-teman yang menggunakan Lotus Software, sejak beberapa minggu yang lalu telah lahir komunitasnya di facebook. Silahkan mampir, berdiskusi, berbagi tips / saran di sana.

Read Full Post »