Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
*
HanIRCÀÇ #coffeenix ¹æ
[
Àåºñ ¹× ȸ¼± ÈÄ¿ø
]
> Forum <
IT ÀÏÁ¤
N
e
w
!
ÀÚµ¿È ÇÁ·ÎÁ§Æ®
HOME
>
³×Æ®¿öÅ©(network)
>
¸ÞÀÏ ¼¹ö(mail)
µµ¿ò¸»
°Ë»ö :
»çÀÌÆ®
WHOIS
À¥¼¹ö Á¾·ù
¸ÞÀÏ ÇÊÅ͸µ(½ºÆÔ¸ÞÀÏ) / procmail
(14, ±Û 18, ÀÚ·á 8)
procmail°ú perl·Î ¸ÞÀϼö½Å·Î±×¸¦ DB·Î (v2)
ÀÛ¼ºÀÏ : 2004/09/10 15:53
±Û¾´ÀÌ : ÁÁÀºÁøÈ£ (
http://coffeenix.net/
)
Á¶È¸¼ö : 9299
[
ÀÌÀüȸé
/
¼öÁ¤
] ºñ¹Ð¹øÈ£ :
Á¦ ¸ñ : procmail°ú perl·Î ¸ÞÀϼö½Å·Î±×¸¦ DB·Î. v2
ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel,
http://coffeenix.net/
)
ÀÛ¼ºÀÏ : 2004.1.15(¸ñ)
¼öÁ¤ÀÏ : 2004.1.18(ÀÏ) DB ½ºÅ°¸¶ ¼öÁ¤, mail_log.pl¿¡¼ ÀÛÀºµû¿ÈÇ¥(')ó¸®
http://coffeenix.net/board_view.php?bd_code=172
¾÷µ¥ÀÌÆ® : 2004.9.10(±Ý) ¸ÞÀÏ ÇÊÅ͸µ ¿©ºÎ üũ Çʵå Ãß°¡
¸ÞÀÏ ÄõÅÍ(ÆÄÀϽýºÅÛ ÄõÅͳª milterAPI¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í ¼ø¼ö procmail+perl·Î¸¸À¸·Î
±¸ÇöÇÒ·Á´Â Áøº¸ÀûÀÎ(?) ÄõÅÍ)¸¦ À§ÇØ ¸¸µå´Â °úÁ¤¿¡¼ ¼ö½Å Á¤º¸°¡ ÇÊ¿äÇß°í, ÀÌ
¼ö½ÅÁ¤º¸¸¦ DB·Î ³²°Üµµ ÁÁ°Ú´Ù´Â »ý°¢À» ÇϰԵǾú´Ù.
Áï, ´Ü¼øÈ÷ °ç´Ù¸®·Î ³ª¿Â °ÍÀÌÁö¸¸ ¾µ¸¸ÇÏ´Ù ½Í¾î(?) Á¤¸®ÇÏ¿© ¼Ò°³ÇÑ´Ù.
1. µé¾î°¡±â
1) DB·Î ³²±â¸é ¹¹°¡ ÁÁÀº°¡?
- Åë°è󸮰¡ ½±°Ô °¡´ÉÇÏ´Ù.
¿ù ¸îÅëÀÇ ¸ÞÀÏÀ» ¹Þ´Â ¼¹öÀÎÁö COUNT(*)¸¸À¸·Î ½±°Ô È®ÀÎÇÒ ¼ö ÀÖ´Ù.
- ¼ö½ÅÀÚº°·Î ¸ÞÀÏ ¼ö½Å ¸ÞÀÏ Åë¼ö Åë°è¸¦ º¼ ¼ö ÀÖ´Ù. (¼ö½ÅÀÚº° GROUP BY ·Î °¡´É)
- ¸ÞÀÏ Á¦¸ñÀ» ÅëÇØ ÇÊÅ͸µÇÒ ½ºÆÔ ¸ÞÀÏ ¼³Á¤À» ½±°Ô µµ¿ÍÁØ´Ù.
- SUM(MAIL_SIZE)¸¦ ÀÌ¿ëÇÏ¸é ¿ùº° ¸ÞÀÏ ¼ö½Å¿ë·®(Çì´õ Á¦¿Ü)À» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
- ¸ÞÀÏ ÇÊÅ͸µ ¿©ºÎ¸¦ DB¿¡ ÀúÀåÇÏ¿© ÇÊÅ͸µ ºñÀ²À» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
2) ¾î¶² ·Î±×¸¦ ³²±â´Â°¡?
- ¸ÞÀÏ ¼Û½ÅÀÚ ¸ÞÀÏÁÖ¼Ò¿Í À̸§
- ¸ÞÀÏ ¼ö½ÅÀÚ ID
- ¸ÞÀÏ Á¦¸ñ
- º»¹® ±æÀÌ (´ÜÀ§ byte)
- ¼Û½ÅÇÑ ÀϽà (Á¤È®È÷´Â DB¿¡ ·Î±×¸¦ ³²±ä ÀϽÃÀ̳ª ½Ã°£»óÀÇ Â÷ÀÌ´Â °ÅÀÇ ¾ø´Ù.)
- ÇÊÅ͸µ ¿©ºÎ (°ªÀÌ 0À̸é ÇÊÅ͸µµÇÁö ¾ÊÀº ¸ÞÀÏÀÌ´Ù.)
3) °úÁ¤À» ÀÌÇØÇØº¸ÀÚ.
sendmail, qmail µî¿¡¼ ¸ÞÀÏÀ» ¼ö½ÅÇϸé MDAÀÎ procmail·Î ³Ñ°ÜÁØ´Ù.
-> /etc/procmailrc ¿¡¼ ¸ÞÀÏ Á¦¸ñ µðÄÚµùÀ» ÇÑ´Ù. (procmail¿¡¼)
-> ¼Û½ÅÀÚ, ¼ö½ÅÀÚ, Á¦¸ñ, ±æÀÌ µîÀ» ¾ò¾î³»¾î º¯¼ö¿¡ ÀúÀåÇÑ´Ù. (procmail¿¡¼)
-> ¾ò¾î³½ °ªÀ» mail_log.pl ·Î ³Ñ°ÜÁØ´Ù. (procmail¿¡¼)
-> DB·Î ÀúÀåÇÑ´Ù. (mail_log.pl¿¡¼)
-> ÇÊÅ͸µ ¿©ºÎ¸¦ üũÇÑ´Ù. (mail_filterchk.pl¿¡¼)
2. ¿ä±¸ »çÇ×
1) DB´Â MySQLÀ» »ç¿ëÇÑ´Ù.
¿À¶óŬµµ »ó°ü¾ø´Ù. ±×°Ô ¹Ù·Î Perl DBI¸ðµâÀÇ ÀåÁ¡ÀÌ´Ù.
2) Perl°ú Perl DBI, DBD ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù.
ÆÞÀÇ ÀúÀåâ°í¶ó ºÒ¸®´Â CPAN(
http://www.cpan.org/modules/
)¿¡¼
DBI, DBD ¸ðµâÀ» ±¸ÇÒ ¼ö ÀÖ´Ù.
Âü°í·Î ·¹µåÇÞ 9¿¡¼´Â rpmÀ¸·Î Á¦°øµÈ´Ù.
http://www.cpan.org/authors/id/T/TI/TIMB/DBI-1.43.tar.gz
http://www.cpan.org/authors/id/J/JW/JWIED/DBD-mysql-2.1028.tar.gz
¸ÕÀú DBIÀ» ´ÙÀ½°ú °°Àº °úÁ¤À¸·Î ¼³Ä¡ÇÏ°í ¶È±ùÀÌ DBD-mysqlµµ ¼³Ä¡ÇÏ¸é µÈ´Ù.
±âÁ¸¿¡ ¼³Ä¡µÈ °ÍÀ» »ç¿ëÇßÀ¸¹Ç·Î, À§¿¡ ¸µÅ©ÇÑ ¼Ò½º·Î ÄÄÆÄÀÏÇßÀ» ¶§ ¹®Á¦°¡
¹ß»ýÇÏ´ÂÁö¿¡ ´ëÇØ¼´Â È®ÀÎÇØÁÙ ¼ö ¾ø´Ù.
#
perl Makefile.PL
#
make
#
make test
(²À ÇÒ ÇÊ¿ä´Â ¾ø´Ù. Á¤»ó µ¿ÀÛÇÏ´Â °ÍÀÎÁö È®ÀÎÇϱâ À§ÇÑ ¿ëµµ.
¿¹Àü¿¡ ¼³Ä¡ÇßÀ» ¶§ ¸î °³ ¿À·ù°¡ ¹ß»ýÇ߾ ½ÇÁ¦ »ç¿ë¿¡´Â ¹®Á¦¾ø¾ú´Ù.)
#
make install
3) ¸ÞÀÏ Á¦¸ñÀÇ ÇÑ±Û µðÄÚµùÀ» À§Çؼ´Â hcode ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. (¿É¼Ç)
ftp://ftp.kaist.ac.kr/pub/hangul/code/hcode/
ftp://ftp.kreonet.re.kr/pub/hangul/cair-archive/code/hcode/
¿¡¼ ±¸ÇÒ ¼ö ÀÖÀ¸¸ç, make ¸¸À¸·Î ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.
3. procmail ¼³Á¤
[ /etc/procmailrc ¼³Á¤ Áß µðÄÚµù ºÎºÐ¸¸ ]
# ¸ÞÀÏ Çì´õ µðÄÚµù
:0 fhw
*^(Subject|From|Cc):.*=\?EUC-KR\?(B|Q)\?
|formail -c | /usr/bin/hcode -dk -m
:0 Efhw
*^(Subject|From|Cc):.*=\?ks_c_5601-1987\?(B|Q)\?
|formail -c | /usr/bin/hcode -dk -m
:0 Efhw
*^(Subject|From|Cc):.*=\?KSC5601\?(B|Q)\?
|formail -c | /usr/bin/hcode -dk -m
:0 Efhw
*^(Subject|From|Cc):.*=\?ISO-8859-1\?(b|B|Q)\?
|formail -c | /usr/bin/hcode -dk -m
# ¸ÞÀÏ ¼ö½Å·Î±×¸¦ DB·Î ÀúÀå
INCLUDERC=/etc/procmail/mail_log.rc
# À̺κп¡ ÇÊÅ͸µ ³»¿ëÀ» ³ª¿ÇÑ´Ù.
#
# ¿¹)
#
# SPAM_LOG=/var/log/SPAM.log
# :0 :
# * ^Subject:.*(¹«·á.*(±³Àç|»ùÇÃ|ÁõÁ¤|È«»ï)|»ùÇÃ.*¹«·á.*(¹è¼Û|¹èÆ÷|Á¦°ø)|ÀÚ¼±Àü¾È³»|±âÀû.*¿µ¹®¹ý|¸íǰ.*(ÃÖÀú
# * *°¡|½Ã°è))
# $SPAM_LOG
# ÇÊÅ͸µ ¿©ºÎ¸¦ üũÇÑ´Ù. (ÇÊÅ͸µÀÌ ¾ÈµÈ ¸ÞÀϸ¸ mail_filterchk.rc°¡ ½ÇÇàµÈ´Ù.)
INCLUDERC=/etc/procmail/mail_filterchk.rc
: ´Â ó¸®ÇÒ Á¶°ÇÀÇ ½ÃÀÛÀ» ÀǹÌÇϸç recipes¶ó ºÒ¸°´Ù.
À§¿¡¼ Çì´õ¿¡¼ °¢°¢ÀÇ Á¶°ÇÀ» ã¾Æ ¸ÂÁö ¾ÊÀ¸¸é ´ÙÀ½ Á¶°Ç(E = else if·Î ÀÌÇØÇÏ¸é µÊ)À»
ó¸®ÇÏ´Â ÇüÅ·ΠµÇ¾î ÀÖ´Ù.
ÀÌ·± °úÁ¤À» °ÅÃÄ Base64³ª QP·Î ÀÎÄÚµùµÈ ¸ÞÀÏ Çì´õ¸¦ µðÄÚµùÇÏ°Ô µÈ´Ù.
ÀÌÁ¦ includeµÈ mail_log.rc°ú mail_filterchk.rc ¸¦ »ìÆìº¸ÀÚ.
[ /etc/procmail/mail_log.rc ]
# ¼Û½ÅÀÚ ¸ÞÀÏÁÖ¼Ò
:0
* ^From: \/.*
{
FROM = "$MATCH"
}
# ¼ö½ÅÀÚ ¸ÞÀÏÁÖ¼Ò
:0
* ^To: \/.*
{
TO = "$MATCH"
}
# ¸ÞÀÏÁ¦¸ñ
:0
* ^Subject: \/.*
{
SUBJECT = "$MATCH"
}
# ¸ÞÀÏ º»¹® byte¼ö
:0
* 1^1 B ?? > 1
{ }
LENGTH = $=
RESULT=`/etc/procmail/mail_log.pl "$FROM" "TO" $LOGNAME "$SUBJECT" $LENGTH`
* ´Ù¿î·Îµå :
http://coffeenix.net/truefeel/files/mail_log_v2/mail_log.rc
°¢°¢ÀÇ Á¶°Ç¿¡ ÀÇÇØ ¼ö½ÅÀÚ, ¼Û½ÅÀÚ, ¸ÞÀÏÁ¦¸ñ, º»¹® ±æÀ̸¦ ¾ò¾î³½´Ù.
±× ¾ò¾îÁø °ªÀº º¯¼ö¿¡ ÀúÀåµÇ¾î mail_log.pl ÇÁ·Î±×·¥¿¡ Àμö·Î ³Ñ°ÜÁÖ°Ô µÈ´Ù.
¾î¶»°Ô ¸ÅĪÀÌ µÇ¾î FROM, TO, SUBJECT, LENGTH º¯¼ö¿¡ °ªÀÌ µé¾î°¡´ÂÁö ±Ã±ÝÇϸé
procmailrc ¿¡ VERBOSE=yes ·Î ÇÏ¸é ½±°Ô È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
LOGFILE=/var/log/procmail
VERBOSE=yes
[ /etc/procmail/mail_log.rc ]
# ¸ÞÀÏ ÇÊÅ͸µ ¿©ºÎ üũ
#
# ¸ÞÀÏ ÇÊÅ͸µÀÌ µÇÁö ¾ÊÀº °æ¿ì´Â DB¿¡¼ ÇÊÅ͸µ À¯¹« üũ¿ë Çʵ带 0 À¸·Î
# updateÇÕ´Ï´Ù.
# ÀÌ ÆÄÀÏÀº /etc/procmailrc ÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ INCLUDEÇØ¾ß ÇÕ´Ï´Ù.
RESULT2=`/etc/procmail/mail_filterchk.pl "$RESULT"`
* ´Ù¿î·Îµå :
http://coffeenix.net/truefeel/files/mail_log_v2/mail_filterchk.rc
4. DB ½ºÅ°¸¶
MAIL_LOG DB ½ºÅ°¸¶ÀÌ´Ù.
/* ¸ÞÀÏ ¼ö½Å ·Î±× */
CREATE TABLE MAIL_LOG (
MAIL_SEQ int unsigned not null auto_increment, /* ·Î±× SEQ. */
MAIL_FROM varchar(255), /* ¼Û½ÅÀÚ(From) */
MAIL_FROMNAME varchar(255), /* ¼Û½ÅÀÚ À̸§ */
MAIL_FROMMAIL varchar(255), /* ¼Û½ÅÀÚ ¸ÞÀÏÁÖ¼Ò */
MAIL_TO varchar(255), /* ¼ö½ÅÀÚ(To) */
MAIL_LOGNAME varchar(255), /* ¼ö½Å ID */
MAIL_SUBJ varchar(255), /* Á¦¸ñ */
MAIL_SIZE int unsigned default 0, /* ¸ÞÀÏ Å©±â */
MAIL_FILTERCHK int unsigned default 0, /* ÇÊÅ͸µ À¯¹« (0=ÇÊÅ͸µ ¾ÈµÊ) */
MAIL_DATE datetime, /* ¸ÞÀÏ ³¯Â¥ */
PRIMARY KEY (MAIL_SEQ),
INDEX key_filterchk(MAIL_FILTERCHK)
);
* ´Ù¿î·Îµå
http://coffeenix.net/truefeel/files/mail_log_v2/mail_log.sql
5. ·Î±ë ¹× ÇÊÅ͸µ ¿©ºÎ üũ ÇÁ·Î±×·¥
´ÙÀ½Àº ·Î±×¸¦ DB¿¡ ÀúÀåÇÏ´Â ÆÞ ¼Ò½ºÀÌ´Ù.
[ /etc/procmail/db_lib.pl ]
#!/usr/bin/perl
#
# DB ÇÔ¼ö
#
# Made By ÁÁÀºÁøÈ£(truefeel,
http://coffeenix.net/
)
use DBI;
# DB ¿¬°á
sub db_connect {
¡¡¡¡¡¡$szDBName = "DBÁöÁ¤";
¡¡¡¡¡¡$szDBUser = "DB USER ID";
¡¡¡¡¡¡$szDBPasswd= "DB ºñ¹Ð¹øÈ£";
¡¡¡¡¡¡$dbh = DBI->connect ( "DBI:mysql:$szDBName", $szDBUser, $szDBPasswd)
|| die "$DBI::errstr";
}
# DB Á¢¼ÓÀ» ²÷À½
sub db_disconnect {
¡¡¡¡¡¡$dbh->disconnect();
}
# SQL¹® ½ÇÇà
sub db_do_sql {
¡¡¡¡¡¡my ( $szSQL ) = @_;
¡¡¡¡¡¡my ( $sth );
¡¡¡¡¡¡$sth = $dbh->prepare($szSQL);
¡¡¡¡¡¡# ¿À·ù°¡ ¹ß»ýÇß´ÂÁö °Ë»ç --------
¡¡¡¡¡¡if ( $@ ) {
¡¡¡¡¡¡ &db_disconnect;
¡¡¡¡¡¡ print " ¿À·ù ¹ß»ý : $@\n";
¡¡¡¡¡¡} else {
¡¡¡¡¡¡ $sth->execute;
¡¡¡¡¡¡}
¡¡¡¡¡¡$sth->finish();
}
$temp="1";
[ /etc/procmail/mail_log.pl ]
#!/usr/bin/perl
#
# procmailÀ» ÅëÇØ ³Ñ°Ü¿Â ¸ÞÀÏ ¼ö½Å Á¤º¸¸¦ DB·Î.
#
# Made By ÁÁÀºÁøÈ£(truefeel,
http://coffeenix.net/
)
#
# 2004.1.13(È)
# 2004.9.10(±Ý) ÇÊÅ͸µ ¿©ºÎ üũ¿ë Çʵå Ãß°¡
#
# - Perl DBI, DBD ¸ðµâ ÇÊ¿ä
# - DB : MySQL
# - ³Ñ°Ü¿À´Â °ª : ¼ø¼´ë·Î From, To, ¼ö½ÅID, ¸ÞÀÏÁ¦¸ñ, º»¹®Å©±â(byte)
require '/etc/procmail/db_lib.pl';
# $DEBUG = 1;
# Á¤º¸¸¦ ³Ñ°Ü ¹ÞÀ½
if ( $#ARGV < 4 ) {
¡¡¡¡¡¡print "½ÇÇà¹æ¹ýÀÌ Æ²·È½À´Ï´Ù. procmailÀ» ÅëÇØ¼ ½ÇÇàÇϼ¼¿ä.\n";
¡¡¡¡¡¡exit 1;
}
($FROM, $TO, $LOGNAME, $SUBJECT, $SIZE ) = @ARGV;
# DBÀúÀåÀ» À§ÇÑ ÀÛÀº µû¿ÈÇ¥ ó¸®
$FROM =~ s/'/''/g;
$TO =~ s/'/''/g;
$SUBJECT =~ s/'/''/g;
# From: ¿¡¼ À̸§°ú ¸ÞÀÏÁÖ¼Ò¸¦ ºÐ¸®
# ¿¹ 1) $FROM = '"truefeel"<true____@coffee___.___>';
# ¿¹ 2) $FROM = 'true____@coffee___.___';
# ¿¹ 3) $FROM = '<true____@coffee___.___>';
if ( $FROM =~ /"{0,}([^"|.]*)"{0,}\s{0,}<(.*)>/g ) {
¡¡¡¡¡¡$FROMNAME = $1;
¡¡¡¡¡¡$FROMMAIL = $2;
} else {
¡¡¡¡¡¡$FROMMAIL = $FROM;
}
# ÇÊÅ͸µ ¿©ºÎ üũ¸¦ À§ÇÑ UniqÇÑ Å°(9ÀÚ¸®) ¸¸µé±â
srand();
$FILTERCHK = sprintf("%09d", int(rand(999999999)) );
# -------------------------------------------------
# DB ó¸®
# -------------------------------------------------
# DB Á¢¼Ó
&db_connect;
# ·Î±× ÀúÀå
$szSQLMailLog = qq {
¡¡¡¡¡¡INSERT INTO MAIL_LOG
¡¡¡¡¡¡VALUES ('', '$FROM', '$FROMNAME', '$FROMMAIL', '$TO', '$LOGNAME', '$SUBJECT', '$SIZE', '$FILTERCHK', now() ) };
&db_do_sql($szSQLMailLog);
&db_disconnect;
# µð¹ö±ë
if ( defined($DEBUG) ) {
¡¡¡¡¡¡$szMailLog = sprintf("¼Û½Å= %s\n¼ö½Å= %s, %s\nÁ¦¸ñ= %s\nÅ©±â= %dBytes\n", $FROM, $TO, $LOGNAME, $SUBJECT, $SIZE);
¡¡¡¡¡¡open(FILE, ">/tmp/maillog.debug");
¡¡¡¡¡¡¡¡¡¡¡¡print FILE $szMailLog;
¡¡¡¡¡¡¡¡¡¡¡¡print FILE "$szSQLMailLog \n";
¡¡¡¡¡¡close(FILE);
}
print $FILTERCHK;¡¡¡¡¡¡¡¡¡¡¡¡# ۰ªÀ» procmail ·Î ³Ñ±è
exit;
* Syntax HighlightµÈ ¼Ò½º º¸±â :
http://coffeenix.net/truefeel/files/mail_log_v2/mail_log.pl.html
http://coffeenix.net/truefeel/files/mail_log_v2/db_lib.pl.html
* ´Ù¿î·Îµå
http://coffeenix.net/truefeel/files/mail_log_v2/mail_log.pl.txt
http://coffeenix.net/truefeel/files/mail_log_v2/db_lib.pl.txt
°£´ÜÈ÷ »ìÆìº¸ÀÚ.
³Ñ°Ü¿Â ÀμöÁß¿¡¼ ¼Û½ÅÀÚ Á¤º¸´Â À̸§°ú ¸ÞÀÏÁÖ¼Ò·Î ³ª´«´Ù. ¹°·Ð À̸§ÀÌ ¾ø¾îµµ ¹®Á¦¾øÀÌ
ó¸®ÇÑ´Ù. ±×¸®°í DB¿¡ ÀúÀåÇϰí Á¾·áÇÑ´Ù.
$DEBUG = 1 À¸·Î ÁöÁ¤ÇÏ¸é µð¹ö±ë¿¡ À¯¿ëÇÏ´Ù. ³Ñ°Ü¹ÞÀº Àμö¸¦ /tmp/maillog.debug¿¡ ÀúÀå ÇÑ´Ù.
db_connect() ÇÔ¼ö¿¡¼ $szDBName, $szDBUser, $szDBPasswdÀ» ¼³Á¤ÇØÁÖ¾î¾ß ÇÑ´Ù.
¸¸¾à Oracle DBÀ̶ó¸é 'DBI:mysql' ´ë½Å 'DBI:Oracle'À» ½áÁÖ¸é µÈ´Ù.
ÁÖÀÇÇÒ °ÍÀº DB ºñ¹Ð¹øÈ£µµ ÀÖÀ¸´Ï ÆÄÀÏ ÆÛ¹Ì¼ÇÀ» 700(rwx------)À¸·Î ÇØ¾ßÇÑ´Ù.
#
chmod 700 /etc/procmail/db_lib.pl
[ /etc/procmail/mail_log.pl ]
#!/usr/bin/perl
#
# procmailÀ» ÅëÇØ ³Ñ¾î¿Â Ű·Î ÇÊÅ͸µ ¿©ºÎ¸¦ DB¿¡ Ç¥½Ã
#
# Made By ÁÁÀºÁøÈ£(truefeel,
http://coffeenix.net/
)
#
# 2004.9.10(±Ý)
#
# - Perl DBI, DBD ¸ðµâ ÇÊ¿ä
# - DB : MySQL
# - ÇÊÅ͸µ ¾ÈµÈ °ÍÀº MAIL_FILTERCHK Çʵ带 0 À¸·Î ÇÔ
require '/etc/procmail/db_lib.pl';
# $DEBUG = 1;
# Á¤º¸¸¦ ³Ñ°Ü ¹ÞÀ½
if ( $#ARGV < 0 ) {
¡¡¡¡¡¡print "½ÇÇà¹æ¹ýÀÌ Æ²·È½À´Ï´Ù. procmailÀ» ÅëÇØ¼ ½ÇÇàÇϼ¼¿ä.\n";
¡¡¡¡¡¡exit 1;
}
($FILTERCHK ) = @ARGV;
# -------------------------------------------------
# DB ó¸®
# -------------------------------------------------
# DB Á¢¼Ó
&db_connect;
# ·Î±× ÀúÀå
$szSQLMailLog = qq {
¡¡¡¡¡¡UPDATE MAIL_LOG SET MAIL_FILTERCHK = 0 WHERE MAIL_FILTERCHK = '$FILTERCHK' };
&db_do_sql($szSQLMailLog);
&db_disconnect;
# µð¹ö±ë
if ( defined($DEBUG) ) {
¡¡¡¡¡¡$szMailLog = sprintf("¼Û½Å= %s\n¼ö½Å= %s, %s\nÁ¦¸ñ= %s\nÅ©±â= %dBytes\n", $FROM, $TO, $LOGNAME, $SUBJECT, $SIZE);
¡¡¡¡¡¡open(FILE, ">/tmp/maillog.debug");
¡¡¡¡¡¡¡¡¡¡¡¡print FILE $szMailLog;
¡¡¡¡¡¡¡¡¡¡¡¡print FILE "$szSQLMailLog \n";
¡¡¡¡¡¡close(FILE);
}
exit;
* Syntax HighlightµÈ ¼Ò½º º¸±â :
http://coffeenix.net/truefeel/files/mail_log_v2/mail_filterchk.pl.html
* ´Ù¿î·Îµå
http://coffeenix.net/truefeel/files/mail_log_v2/mail_filterchk.pl.txt
¼ö½Å ¸ÞÀÏ¿¡ ´ëÇÑ À¯ÀÏÇÑ Å°°ª($FILTERCHK)À» ³Ñ°Ü¹Þ¾Æ¼ ÇÊÅ͸µ µÇÁö ¾ÊÀº ¸ÞÀÏÀÓÀ»
Ç¥½ÃÇÑ´Ù. (UPDATE¹®, MAIL_FILTERCHK = 0)
·Î±×°¡ Á¦´ë·Î ³²¾Ò´ÂÁö È®ÀÎÇØº¸ÀÚ.
·Î±×¸¦ DB·Î ³²°åÀ» ¶§ ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀÎÁö »ý°¢Çߴ°¡?
±×·³ Áö±Ý ´çÀå ½ÃÀÛÇØ¶ó!
6. Âü°í ÀÚ·á
* Procmail Tips
http://pm-doc.sourceforge.net/pm-tips.html
* procmail¿¡ °üÇÏ¿© (±Û ÀÌ»ó·Î)
http://trade.chonbuk.ac.kr/~leesl/procmail/index.html
* Short guide to DBI (The Perl Database Interface Module)
http://www.perl.com/pub/a/1999/10/DBI.html
Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
[04/22]
Re: ¿µÈ¼Ó¿¡ ÄÄÇ»ÅÍ À̾߱â ~½º¿öµåÇǽ¬(2001)
[04/17]
°·ÂÇØÁø žç Ȱµ¿, ÃÊ´ëÇü ÅÂ¾ç ÆøÇ³À¸·Î "Áö±¸ ´ëÀç³ À§±â"
[10/20]
Cross Compiler ±ò
[07/14]
SSL ¬¡¬°
[04/26]
Re: µµ½ºÈ¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
[04/25]
µµ½ºÈ¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
[10/30]
Cshell¿¡¼ ³¼ö ¼³Á¤
[10/23]
°øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
[01/26]
Re: wgetÀ¸·Î ´Ù¸¥¼¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
[01/25]
wgetÀ¸·Î ´Ù¸¥¼¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
[01/11]
ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼ SSL ¹®Á¦ (WebView ¹ö±×)
[08/01]
DNS forwarder (Àü´ÞÀÚ) ¼¹ö¸¦ ÅëÇØ¼ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
[05/16]
(ÁÖ)ÈÄÀÌÁî ½Ã½ºÅÛ¿£Áö´Ï¾î (°æ·ÂÀÚ) ¸ðÁý
[02/15]
[AWS] Cloudfront edge È®ÀÎÇϱâ
[01/20]
Mobile Service/eCommerce ±â¾÷¿¡¼ Server / Java / PHP °³¹ßÀÚ ±¸ÀÎ
N
e
w
! ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
QCad for Windows --- GNU GPL (Free Software)
The Hello World Collection
IPMI¸¦ Ȱ¿ëÇÑ ¸®´ª½º ¼¹ö°ü¸®
DNS ¼³Á¤ °Ë»ç
nagiosgraph ¼³Ä¡ ¹æ¹ý
Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
clusterssh
[ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]
¿î¿µÁø :
ÁÁÀºÁøÈ£(truefeel)
, ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
2003³â 8¿ù 4ÀÏ~