%
'===========================================================================
' Here is the routine used to actually save the email to disk
' It is saved as an asp file with all the header details stored a ASP
' variables and also as commented out raw header text so it remains hidden
'===========================================================================
Dim msgDate, msgSubject, msgFrom, msgFromName, msgReplyTo, msgCC, msgTo
Dim msgStrReplyFrom, msgStrReplyAll, msgStrReplyCC, msgIsHTML
Dim msgAttachmentPath, msgAttachmentCount, msgAttachments
Sub GetMessage( PATH, MSGID )
Set FSO = CreateObject("Scripting.FileSystemObject")
'============================================================================
' If the message files exists then exit the function and display the message
'============================================================================
strCheckFilepathASP = addSlash(Replace(userWebPath, "/", "\"), "\") & PATH & "/" & MSGID & ".asp"
If FSO.FileExists(strCheckFilepathASP) = True Then
InitHeader strCheckFilepathASP
msgDate = GetHeader("msgDate")
msgSubject = GetHeader("msgSubject")
msgFrom = GetHeader("msgFrom")
msgFromName = GetHeader("msgFromName")
msgReplyTo = GetHeader("msgReplyTo")
msgCC = GetHeader("msgCC")
msgTo = GetHeader("msgTo")
msgStrReplyFrom = GetHeader("msgStrReplyFrom")
msgStrReplyAll = GetHeader("msgStrReplyAll")
msgStrReplyCC = GetHeader("msgStrReplyCC")
msgIsHTML = GetHeader("msgIsHTML")
msgAttachmentPath = GetHeader("msgAttachmentPath")
msgAttachmentCount = GetHeader("msgAttachmentCount")
msgAttachments = GetHeader("msgAttachments")
ClearHeader
End If
Set FSO = nothing
End Sub
Sub saveMessage( MSGID )
Set FSO = CreateObject("Scripting.FileSystemObject")
'============================================================================
' If the message files exists then exit the function and display the message
'============================================================================
strCheckFilepathEML = addSlash(Replace(userPath, "/", "\"), "\") & MSGID & ".eml"
strCheckFilepathASP = addSlash(Replace(userWebPath, "/", "\"), "\") & MSGID & ".asp"
If FSO.FileExists(strCheckFilepathEML) = True AND FSO.FileExists(strCheckFilepathASP) = True Then
InitHeader strCheckFilepathASP
msgDate = GetHeader("msgDate")
msgSubject = GetHeader("msgSubject")
msgFrom = GetHeader("msgFrom")
msgFromName = GetHeader("msgFromName")
msgReplyTo = GetHeader("msgReplyTo")
msgCC = GetHeader("msgCC")
msgTo = GetHeader("msgTo")
msgStrReplyFrom = GetHeader("msgStrReplyFrom")
msgStrReplyAll = GetHeader("msgStrReplyAll")
msgStrReplyCC = GetHeader("msgStrReplyCC")
msgIsHTML = GetHeader("msgIsHTML")
msgAttachmentPath = GetHeader("msgAttachmentPath")
msgAttachmentCount = GetHeader("msgAttachmentCount")
msgAttachments = GetHeader("msgAttachments")
ClearHeader
Set FSO = nothing
Exit Sub
End If
Set pop3 = Server.CreateObject( "JMail.POP3" )
'======================
' Make a POP connection
'======================
pop3.Connect MyUsername, MyPassword, POP3Server
'====================================
' Only proceed if there are messages
'====================================
if pop3.count > 0 then
Dim messageID, isDirectSelected
messageID = "0"
isDirectSelected = False
If MSGID <> "" Then
Dim arrPOPArray
Dim arrPOPFilter
'================================================
' First check the user inbox file for the message
'================================================
arrPOPArray = fileToArray(userInboxFile)
arrPOPFilter = Filter(arrPOPArray, MSGID)
If UBound(arrPOPFilter) = -1 Then
'===============================================
' No joy so give out an error message and abort!
'===============================================
AbortMessage
End If
'===================================================
' arrPOPFilter is valid which means the message has
' been found so pass the message ID on to messageID.
'===================================================
messageID = Left( arrPOPFilter(0), Instr(arrPOPFilter(0), cacheTOKEN)-1 )
Else
'=================================
' In case we want to retrieve the
' message directly using its ID.
'=================================
If Request.QueryString("ID") <> "" Then
messageID = Request.QueryString("ID")
isDirectSelected = True
End If
End If
'======================================
' Strip any leading "#" from messageID
'======================================
If Instr(messageID, "#") = 1 Then
messageID = Mid(messageID, 2, Len(messageID))
End If
On Error Resume Next
Set msg = pop3.Messages.item( messageID )
If Err <> 0 Then
AbortMessage
End If
Dim strUniqueURL
strUniqueURL = DateToNumber(msg.Date) & "." & msg.From
If NOT isDirectSelected Then
If strUniqueURL <> MSGID Then
AbortMessage
End If
End If
msgUniqueURL = strUniqueURL
msgID = messageID
msgCount = pop3.Count
'=================================================
' First element of this array is 1
' since POP3 server strangely start counting at 1
'=================================================
ReTo = ""
ReCC = ""
Set Recipients = msg.Recipients
msgStrReplyAll = msg.From
msgReplyTo = msg.ReplyTo
Dim strFirstAddress
strFirstAddress = ""
'=============================================
' We now need to get all the recipients,
' both normal and Carbon Copy (CC) recipients
' and store them in a string variable
'=============================================
For i = 0 To Recipients.Count - 1
separatorAll = ", "
If i = 0 Then
separatorTo = ""
separatorCC = ""
separatorReTo = ""
separatorReCC = ""
End If
Set re = Recipients.item(i)
If re.ReType = 0 Then
ReTo = ReTo & separatorReTo & re.EMail
separatorReTo = ", "
If ( msgStrReplyFrom = "" ) AND ( GetFromAddress(re.EMail) <> "" ) Then
msgStrReplyFrom = re.EMail
End If
If GetFromAddress(re.EMail) = "" Then
msgStrReplyAll = msgStrReplyAll & separatorAll & re.EMail
End If
If strFirstAddress = "" Then strFirstAddress = re.Email
else
ReCC = ReCC & separatorReCC & re.EMail
separatorReCC = ", "
If ( msgStrReplyFrom = "" ) AND ( GetFromAddress(re.EMail) <> "" ) Then
msgStrReplyFrom = re.EMail
End If
If GetFromAddress(re.EMail) = "" Then
msgStrReplyCC = msgStrReplyCC & separatorCC & re.EMail
separatorCC = ", "
End If
If strFirstAddress = "" Then strFirstAddress = re.Email
End If
Next
'===================================================================================================
' We haven't found a ReplyFrom address but if there is only one Recipients then this is probably it!
'===================================================================================================
If msgStrReplyFrom = "" AND Recipients.Count = 1 Then msgStrReplyFrom = strFirstAddress
msgSubject = msg.Subject
msgTo = ReTo
msgCC = ReCC
msgFrom = msg.From
msgFromName = msg.FromName
Dim isHTMLBody
If msg.HTMLBody <> "" Then
msgIsHTML = "1"
Else
msgIsHTML = "0"
End If
msgDate = msg.Date
msgSubject = msg.Subject
Comment "Display attachements"
'==============================
' Now deal with any attachments
'==============================
If allowAttachments Then Set Attachments = msg.Attachments
'===================================================
' If we make a message body attachment this is extra
'===================================================
msgAttachmentCount = Attachments.Count
'===========================================================
' Attachments are put in a folder attachments/username
' And to avoid duplicate files they are put into subfolders
' named after the attachment date attachmentPath + datePath
' (attachmentPath is set in include.asp)
'===========================================================
datePath = DateToNumber(msg.Date) & "." & msg.From & ".attach"
msgAttachmentPath = datePath
If allowAttachments Then
If Attachments.Count > 0 Then
'=========================================================
' First make the attachments subfolder
' attachmentPath contains the root path for attachments...
' It is taken from include.asp
'=========================================================
If fso.FolderExists( attachmentPath ) = False Then
dim fba
set fba=fso.CreateFolder( attachmentPath )
set fba=nothing
End If
'============================
' And then the date subfolder
'============================
If fso.FolderExists( attachmentPath & datePath & "\" ) = False Then
dim fbd
set fbd=fso.CreateFolder( attachmentPath & datePath & "\" )
set fbd=nothing
End If
End If
'=====================================================
' Now deal with the real attachments if there are any
'=====================================================
separator = ","
For i = 0 To Attachments.Count - 1
If i = Attachments.Count - 1 Then
separator = ""
End If
Set at = Attachments(i)
'=================================================
' Sometimes messages are sent as attachments .msg
' so rename this message.msg
'=================================================
If at.Name = ".msg" Then
filePath = datePath & "\" & "message" & at.Name
msgAttachments = msgAttachments & "message" & removeExtendedChars(at.Name) & separator
Else
filePath = datePath & "\" & at.Name
msgAttachments = msgAttachments & removeExtendedChars(at.Name) & separator
End If
filePath = removeExtendedChars( filePath )
'===========================================
' And now finally save the attachment in it
'===========================================
If not fso.FileExists( attachmentPath & filePath ) Then
at.SaveToFile( attachmentPath & filePath )
End If
filePath = Replace( filePath, "\", "/" )
Next
End If
End if
pop3.Disconnect
'===================================================
' Got all the message details - now save the message
'===================================================
Dim foSaveFile, strMessageFilepath
strMessageFilepath = addSlash(Replace(userPath, "/", "\"), "\") & DateToNumber(msg.Date) & "." & msg.From & ".eml"
Set foSaveFile = FSO.CreateTextFile(strMessageFilepath, true)
set Headers = msg.Headers
foSaveFile.write( Headers.Text )
foSaveFile.write( msg.BodyText )
foSaveFile.close
Set foSaveFile = nothing
Dim foSaveFileASP, strMessageFilepathASP
strMessageFilepathASP = addSlash(Replace(userWebPath, "/", "\"), "\") & DateToNumber(msg.Date) & "." & msg.From & ".asp"
Set foSaveFileASP = FSO.CreateTextFile(strMessageFilepathASP, true)
foSaveFileASP.writeLine( "<" & "%" )
foSaveFileASP.writeLine( "msgUniqueURL=""" & stripTags(msgUniqueURL) & """" )
foSaveFileASP.writeLine( "msgDate=""" & msgDate & """" )
foSaveFileASP.writeLine( "msgSubject=""" & stripTags(msgSubject) & """" )
foSaveFileASP.writeLine( "msgFrom=""" & stripTags(msgFrom) & """" )
foSaveFileASP.writeLine( "msgFromName=""" & stripTags(msgFromName) & """" )
foSaveFileASP.writeLine( "msgReplyTo=""" & stripTags(msgReplyTo) & """" )
foSaveFileASP.writeLine( "msgCC=""" & stripTags(msgCC) & """" )
foSaveFileASP.writeLine( "msgTo=""" & stripTags(msgTo) & """" )
foSaveFileASP.writeLine( "msgStrReplyFrom=""" & stripTags(msgStrReplyFrom) & """" )
foSaveFileASP.writeLine( "msgStrReplyAll=""" & stripTags(msgStrReplyAll) & """" )
foSaveFileASP.writeLine( "msgStrReplyCC=""" & stripTags(msgStrReplyCC) & """" )
foSaveFileASP.writeLine( "msgIsHTML=""" & msgIsHTML & """" )
foSaveFileASP.writeLine( "msgAttachmentPath=""" & msgAttachmentPath & """" )
foSaveFileASP.writeLine( "msgAttachmentCount=""" & msgAttachmentCount & """" )
foSaveFileASP.writeLine( "msgAttachments=""" & msgAttachments & """" )
foSaveFileASP.writeLine( "'END_HEADER_VARS" )
foSaveFileASP.writeLine( "If Session(""MAILACCESS"") <> ""Yes"" Then Response.End" )
foSaveFileASP.writeLine( "If Request.QueryString(""file"") <> """" Then" )
foSaveFileASP.writeLine( "%" & ">" )
foSaveFileASP.writeLine( "" )
If msgIsHTML Then
foSaveFileASP.write( msg.HTMLBody )
Else
If Instr(1, msg.Body, "", vbTextCompare) > 0 OR Instr(1, msg.Body, "
", vbTextCompare) > 0 Then
foSaveFileASP.write( msg.Body )
Else
foSaveFileASP.write( "
" & msg.Body ) End If End If foSaveFileASP.writeLine( "" ) foSaveFileASP.writeLine( "<" & "%" & " End If " & "%" & ">") foSaveFileASP.close Set foASPSaveFile = nothing Set FSO = nothing End Sub %>") color_v="F4F090" # Background color for number of visites (Default = "F4F090") color_p="4477DD" # Background color for number of pages (Default = "4477DD") color_h="66DDEE" # Background color for number of hits (Default = "66DDEE") color_k="2EA495" # Background color for number of bytes (Default = "2EA495") color_s="8888DD" # Background color for number of search (Default = "8888DD") color_e="CEC2E8" # Background color for number of entry pages (Default = "CEC2E8") color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2E2") #----------------------------------------------------------------------------- # PLUGINS #----------------------------------------------------------------------------- # Add here all plugin files you want to load. # Plugin files must be .pm files stored in 'plugins' directory. # Uncomment LoadPlugin lines to enable a plugin after checking that perl # modules required by the plugin are installed. # Plugin: Tooltips # Perl modules required: None # Add some tooltips help on HTML report pages. # Note that enabling this kind of help will increased HTML report pages size, # so server load and bandwidth. # #LoadPlugin="tooltips" # Plugin: DecodeUTFKeys # Perl modules required: Encode and URI::Escape # Allow AWStats to show correctly (in language charset) keywords/keyphrases # strings even if they were UTF8 coded by the referer search engine. # #LoadPlugin="decodeutfkeys" # Plugin: IPv6 # Perl modules required: Net::IP and Net::DNS # This plugin gives AWStats capability to make reverse DNS lookup on IPv6 # addresses. # Note: If you are interested in having country report, you should use the # geoipfree or geoip plugin instead of enabled reverse DNS lookup. # #LoadPlugin="ipv6" # Plugin: HashFiles # Perl modules required: Storable # AWStats DNS cache files are read/saved as native hash files. This increases # DNS cache files loading speed, above all for very large web sites. # #LoadPlugin="hashfiles" # Plugin: GeoIP # Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IP module # from Maxmind, database more up to date) or the GeoIPfree plugin (need # Perl Geo::IPfree module, database less up to datetats_bw.css" # Example: "/css/awstats_bw.css" # Default: "" # StyleSheet="" # Those color parameters can be used (if StyleSheet parameter is not used) # to change AWStats look. # Example: color_name="RRGGBB" # RRGGBB is Red Green Blue components in Hex # color_Background="FFFFFF" # Background color for main page (Default = "FFFFFF") color_TableBGTitle="CCCCDD" # Background color for table title (Default = "CCCCDD") color_TableTitle="000000" # Table title font color (Default = "000000") color_TableBG="CCCCDD" # Background color for table (Default = "CCCCDD") color_TableRowTitle="FFFFFF" # Table row title font color (Default = "FFFFFF") color_TableBGRowTitle="ECECEC" # Background color for row title (Default = "ECECEC") color_TableBorder="ECECEC" # Table border color (Default = "ECECEC") color_text="000000" # Color of text (Default = "000000") color_textpercent="606060" # Color of text for percent values (Default = "606060") color_titletext="000000" # Color of text title within colored Title Rows (Default = "000000") color_weekend="EAEAEA" # Color for week-end days (Default = "EAEAEA") color_link="0011BB" # Color of HTML links (Default = "0011BB") color_hover="605040" # Color of HTML on-mouseover links (Default = "605040") color_u="FFAA66" # Background color for number of unique visitors (Default = "FFAA66") color_v="F4F090" # Background color for number of visites (Default = "F4F090") color_p="4477DD" # Background color for number of pages (Default = "4477DD") color_h="66DDEE" # Background color for number of hits (Default = "66DDEE") color_k="2EA495" # Background color for number of bytes (Default = "2EA495") color_s="8888DD" # Background color for number of search (Default = "8888DD") color_e="CEC2E8" # Background color for number of entry pages (Default = "CEC2E8") color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2E2") #----------------------------------------------------------------------------- # PLUGINS #----------------------------------------------------------------------------- # Add here all plugin files you want to load. # Plugin files must be .pm files stored in 'plugins' directory. # Uncomment LoadPlugin lines to enable a plugin after checking that perl # modules required by the plugin are installed. # Plugin: Tooltips # Perl modules required: None # Add some tooltips help on HTML report pages. # Note that enabling this kind of help will increased HTML report pages size, # so server load and bandwidth. # #LoadPlugin="tooltips" # Plugin: DecodeUTFKeys # Perl modules required: Encode and URI::Escape # Allow AWStats to show correctly (in language charset) keywords/keyphrases # strings even if they were UTF8 coded by the referer search engine. # #LoadPlugin="decodeutfkeys" # Plugin: IPv6 # Perl modules required: Net::IP and Net::DNS # This plugin gives AWStats capability to make reverse DNS lookup on IPv6 # addresses. # Note: If you are interested in having country report, you should use the # geoipfree or geoip plugin instead of enabled reverse DNS lookup. # #LoadPlugin="ipv6" # Plugin: HashFiles # Perl modules required: Storable # AWStats DNS cache files are read/saved as native hash files. This increases # DNS cache files loading speed, above all for very large web sites. # #LoadPlugin="hashfiles" # Plugin: GeoIP # Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IP module # from Maxmind, database more up to date) or the GeoIPfree plugin (need # Perl Geo::IPfree module, database less up to date). # This plugin reduces AWStats speed of 8% ! # #LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat" # Plugin: GeoIPfree # Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between " # Color of text for percent values (Default = "606060") color_titletext="000000" # Color of text title within colored Title Rows (Default = "000000") color_weekend="EAEAEA" # Color for week-end days (Default = "EAEAEA") color_link="0011BB" # Color of HTML links (Default = "0011BB") color_hover="605040" # Color of HTML on-mouseover links (Default = "605040") color_u="FFAA66" # Background color for number of unique visitors (Default = "FFAA66") color_v="F4F090" # Background color for number of visites (Default = "F4F090") color_p="4477DD" # Background color for number of pages (Default = "4477DD") color_h="66DDEE" # Background color for number of hits (Default = "66DDEE") color_k="2EA495" # Background color for number of bytes (Default = "2EA495") color_s="8888DD" # Background color for number of search (Default = "8888DD") color_e="CEC2E8" # Background color for number of entry pages (Default = "CEC2E8") color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2E2") #----------------------------------------------------------------------------- # PLUGINS #----------------------------------------------------------------------------- # Add here all plugin files you want to load. # Plugin files must be .pm files stored in 'plugins' directory. # Uncomment LoadPlugin lines to enable a plugin after checking that perl # modules required by the plugin are installed. # Plugin: Tooltips # Perl modules required: None # Add some tooltips help on HTML report pages. # Note that enabling this kind of help will increased HTML report pages size, # so server load and bandwidth. # #LoadPlugin="tooltips" # Plugin: DecodeUTFKeys # Perl modules required: Encode and URI::Escape # Allow AWStats to show correctly (in language charset) keywords/keyphrases # strings even if they were UTF8 coded by the referer search engine. # #LoadPlugin="decodeutfkeys" # Plugin: IPv6 # Perl modules required: Net::IP and Net::DNS # This plugin gives AWStats capability to make reverse DNS lookup on IPv6 # addresses. # Note: If you are interested in having country report, you should use the # geoipfree or geoip plugin instead of enabled reverse DNS lookup. # #LoadPlugin="ipv6" # Plugin: HashFiles # Perl modules required: Storable # AWStats DNS cache files are read/saved as native hash files. This increases # DNS cache files loading speed, above all for very large web sites. # #LoadPlugin="hashfiles" # Plugin: GeoIP # Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IP module # from Maxmind, database more up to date) or the GeoIPfree plugin (need # Perl Geo::IPfree module, database less up to date). # This plugin reduces AWStats speed of 8% ! # #LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat" # Plugin: GeoIPfree # Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IPfree # module, database less up to date) or the GeoIP plugin (need Perl Geo::IP # module from Maxmind, database more up to date). # Note: Activestate provide a corrupted version of Geo::IPfree 0.2 Perl # module, so install it from elsewhere (from www.cpan.org for example). # This plugin reduces AWStats speed of 10% ! # #LoadPlugin="geoipfree" # Plugin: GeoIP_Region_Maxmind # Perl modules required: Geo::IP (from Maxmind) # This plugin add a chart of hits by regions. Only regions for US and # Canada can be detected. # Note: This plugin need Maxmind GeoIP Perl module AND the region database. # Note: I get some problem with Maxmind Geo::IP Perl module with ActiveState # on Windows but it works great on Linux with default Perl. # You need to purchase a license from Maxmind to get/use the Region database. # This plugin reduces AWStats speed. # #L) color_titletext="000000" # Color of text title within colored Title Rows (Default = "000000") color_weekend="EAEAEA" # Color for week-end days (Default = "EAEAEA") color_link="0011BB" # Color of HTML links (Default = "0011BB") color_hover="605040" # Color of HTML on-mouseover links (Default = "605040") color_u="FFAA66" # Background color for number of unique visitors (Default = "FFAA66") color_v="F4F090" # Background color for number of visites (Default = "F4F090") color_p="4477DD" # Background color for number of pages (Default = "4477DD") color_h="66DDEE" # Background color for number of hits (Default = "66DDEE") color_k="2EA495" # Background color for number of bytes (Default = "2EA495") color_s="8888DD" # Background color for number of search (Default = "8888DD") color_e="CEC2E8" # Background color for number of entry pages (Default = "CEC2E8") color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2E2") #----------------------------------------------------------------------------- # PLUGINS #----------------------------------------------------------------------------- # Add here all plugin files you want to load. # Plugin files must be .pm files stored in 'plugins' directory. # Uncomment LoadPlugin lines to enable a plugin after checking that perl # modules required by the plugin are installed. # Plugin: Tooltips # Perl modules required: None # Add some tooltips help on HTML report pages. # Note that enabling this kind of help will increased HTML report pages size, # so server load and bandwidth. # #LoadPlugin="tooltips" # Plugin: DecodeUTFKeys # Perl modules required: Encode and URI::Escape # Allow AWStats to show correctly (in language charset) keywords/keyphrases # strings even if they were UTF8 coded by the referer search engine. # #LoadPlugin="decodeutfkeys" # Plugin: IPv6 # Perl modules required: Net::IP and Net::DNS # This plugin gives AWStats capability to make reverse DNS lookup on IPv6 # addresses. # Note: If you are interested in having country report, you should use the # geoipfree or geoip plugin instead of enabled reverse DNS lookup. # #LoadPlugin="ipv6" # Plugin: HashFiles # Perl modules required: Storable # AWStats DNS cache files are read/saved as native hash files. This increases # DNS cache files loading speed, above all for very large web sites. # #LoadPlugin="hashfiles" # Plugin: GeoIP # Perl modules required: Geo::IP or Geo::IP::PurePerl (from Maxmind) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IP module # from Maxmind, database more up to date) or the GeoIPfree plugin (need # Perl Geo::IPfree module, database less up to date). # This plugin reduces AWStats speed of 8% ! # #LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat" # Plugin: GeoIPfree # Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.) # Country chart is built from an Internet IP-Country database. # This plugin is useless for intranet only log files. # Note: You must choose between using this plugin (need Perl Geo::IPfree # module, database less up to date) or the GeoIP plugin (need Perl Geo::IP #