Detected virus

whats the best way to get rid of pop-ups and a virus?

Your description leaves a lot to the imagination, but I'll venture a guess that it's not malware. If I guessed right, it's a JavaScript scam that only affects your web browser, and only temporarily. There are several ways to recover.
1. Some of those scam pages can be dismissed very easily. Press the key combination command-W to close the tab or window. A huge box will pop up. Press the return key and both the box and the page will close. If that doesn't happen, continue.
2. Press and hold command-W. You may hear repeating alert sounds. While holding the keys, click the OK button in the popup. A different popup may appear, which you can cancel out of as usual.
3. From the Safari menu bar, select
          Safari ▹ Preferences... ▹ Security
and uncheck the box marked Enable JavaScript. Leave the preferences dialog open.
Close the malicious window or tab.
Re-enable JavaScript and close the preferences dialog.
4. If the Preferences menu item is grayed out, quit Safari. Force quit if necessary. Relaunch it by holding down the shift key and clicking its icon in the Dock. None of the windows and tabs will reopen.
After closing the malicious page, from the menu bar, select
          Safari ▹ Preferences... ▹ Privacy ▹ Remove All Website Data
to get rid of any cookies or other data left by the server. Open your Downloads folder and delete anything you don't recognize.

Similar Messages

  • Astaro security gateway detects Virus in 3.6.6 from indiana.edu site

    Astator gateway reports - The item you have requested is infected by virus. It will not download.
    The gateway does a complete download but then goes through a scanning phase at which time a virus is detected. Download web site - http://mozilla.usse.indiana.edu/pub/mozilla.org/firefox/releases/3.6.6/win32/en-US/Firefox%20Setup%203.6.6.exe
    == This happened ==
    Every time Firefox opened
    == Trying to dowload install file from Indiana.edu site- detects virus in 3.6.6.exe file

    There have been "false postives" reported for a number of Firefox revision numbers by a number of AV/AS scanners.
    Try to download Firefox from here (you may be connected to a mirror site):
    http://www.mozilla.com/en-US/firefox/all.html
    Astaro Support: http://www.astaro.com/support
    Astaro User Forum: http://www.astaro.org/
    <u>'''''Other Issues'''''</u>: ~~red:You have installed plug-ins with known security issues. You should update them immediately.~~
    <u>'''Update Java'''</u>: your ver. 1.6.0.18; current ver. 1.6.0.20 (<u>important security update 04-15-2010</u>)
    (Firefox 3.6 and above requires Java 1.6.0.10 or higher; see: http://support.mozilla.com/en-US/kb/Java-related+issues#Java_does_not_work_in_Firefox_3_6 )
    ''(Windows users: Do the manual update; very easy.)''
    ~~red:Check your version here~~: http://www.mozilla.com/en-US/plugincheck/
    See: '''[http://support.mozilla.com/en-US/kb/Using+the+Java+plugin+with+Firefox#Updates Updating Java]'''
    Do the update with Firefox closed.
    <u>'''Install/Update Adobe Flash Player for Firefox (aka Shockwave Flash)'''</u>: your ver. 10.0 r45; current ver. 10.1 r53 ('''important security update 2010-06-10''')
    ~~red:Check your version here~~: http://www.mozilla.com/en-US/plugincheck/
    See: '''[http://support.mozilla.com/en-US/kb/Managing+the+Flash+plugin#Updating_Flash Updating Flash]'''
    -'''<u>use Firefox to download</u>''' and <u>'''SAVE to your hard drive'''</u> (save to Desktop for easy access)
    -exit Firefox (File > Exit)
    -check to see that Firefox is completely closed (''Ctrl+Alt+Del, choose Task Manager, click Processes tab, if "firefox.exe" is on the list, right-click "firefox.exe" and choose End process, close the Task Manager window'')
    -double-click on the Adobe Flash installer you just downloaded to install/update Adobe Flash
    -when the Flash installation is complete, start Firefox, and test the Flash installation here: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15507&sliceId=1
    *<u>'''NOTE: On Vista and Windows 7'''</u> you may need to run the plugin installer as Administrator by starting the installer via the right-click context menu if you do not get an UAC prompt to ask for permission to continue (i.e nothing seems to happen). See this: http://vistasupport.mvps.org/run_as_administrator.htm
    *'''<u>NOTE for IE:</u>''' Firefox and most other browsers use a Plugin. IE uses an ActiveX version of Flash. To install/update the IE ActiveX Adobe Flash Player, same instructions as above, except use IE to download the ActiveX Flash installer. See: [[ActiveX]]
    *Also see: http://kb.mozillazine.org/Flash ~~red:'''''AND'''''~~ [[How do I edit options to add Adobe to the list of allowed sites]]

  • Mcfee Software has detected viruses and trojans

    Bought laptop 2 days ago and installed McFee software (as recommended). McFee scan says computer is virus free and no problems found.
    Problem is I have various warnings on pop ups saying system has up to 23 viruses and trojans detected "system is about to crash".
    Anyone know what is going on?

    > Bought laptop 2 days ago and installed McFee software (as recommended).
    Just out of curiosity, who recommends you to install McFee?
    I dont know what is wrong there but maybe this McFee has detected some Toshiba specific stuff and has identified them as virus. I dont know what is listed as virus.
    Contact McFee manufacturer and ask for help. Toshiba doesnt support this third part software.

  • My antivirus Dr.Web detects virus in last upgrade, impossible do it

    ''locking as a duplicate - https://support.mozilla.com/en-US/questions/877765''
    My antivirus Dr.Web blocks last update of Incredimail

    It could be a false positive. Post your question and all of the details that occurred on the Dr. Web forum for assistance (scroll down to the English forums): http://forum.drweb.com/index.php?s=be4023cbedf3d174abdf28bb839f1d23&act=idx
    '''If this reply solves your problem, please click "Solved It" next to this reply when <u>signed-in</u> to the forum.'''
    Not related to your question, but...
    You may need to update some plug-ins. Check your plug-ins and update as necessary:
    *Plug-in check: https://www-trunk.stage.mozilla.com/en-US/plugincheck/
    *Adobe Shockwave for Director Netscape plug-in: [https://support.mozilla.com/en-US/kb/Using%20the%20Shockwave%20plugin%20with%20Firefox#w_installing-shockwave Installing ('''''or Updating''''') the Shockwave plugin with Firefox]
    *Adobe PDF Plug-In For Firefox and Netscape: [https://support.mozilla.com/en-US/kb/Using%20the%20Adobe%20Reader%20plugin%20with%20Firefox#w_installing-and-updating-adobe-reader Installing/Updating Adobe Reader in Firefox]
    *Shockwave Flash (Adobe Flash or Flash): [https://support.mozilla.com/en-US/kb/Managing%20the%20Flash%20plugin#w_updating-flash Updating Flash in Firefox]
    *Next Generation Java Plug-in for Mozilla browsers: [https://support.mozilla.com/en-US/kb/Using%20the%20Java%20plugin%20with%20Firefox#w_installing-or-updating-java Installing or Updating Java in Firefox]

  • Can antivirus on windows detect mac virus?

    I scanned my OS X system in windows bootcamp and it's detect virus on my OS X system.

    You may have better luck posting on the Boot Camp (not bootcamp) forum. However if you installed the application while you were running Win 7 in Boot Camp then it would have ONLY installed in Windows 7 partition. When you partitioned the machine for Boot Camp your computer looks at the partitions as seperate HD's so anything installed in the Boot Camp partition stays only that partition.

  • ClamAV fails to scan for viruses in emails [CLAWS MAIL]

    I've recently switched from Thunderbird to Claws Mail and ran into one small, but annoying, problem.
    I want to use ClamAV + the clamav extension for claws mail to scan for viruses, however it does seem to have permission problems.
    clamd is running, user and group clamav all have the relevant permissions as far as I can tell, however upon scanning my mail, I always end up with the following error:
    Scanning error:
    /home/username/.claws-mail/mimetmp/0000000e.mimetmp: lstat() failed: Permission denied. ERROR
    Here's my clamd.conf:
    ## Please read the clamd.conf(5) manual before editing this file.
    # Comment or remove the line below.
    #Example
    # Uncomment this option to enable logging.
    # LogFile must be writable for the user running daemon.
    # A full path is required.
    # Default: disabled
    LogFile /var/log/clamav/clamd.log
    # By default the log file is locked for writing - the lock protects against
    # running clamd multiple times (if want to run another clamd, please
    # copy the configuration file, change the LogFile variable, and run
    # the daemon with --config-file option).
    # This option disables log file locking.
    # Default: no
    #LogFileUnlock yes
    # Maximum size of the log file.
    # Value of 0 disables the limit.
    # You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
    # and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
    # in bytes just don't use modifiers.
    # Default: 1M
    #LogFileMaxSize 2M
    # Log time with each message.
    # Default: no
    LogTime yes
    # Also log clean files. Useful in debugging but drastically increases the
    # log size.
    # Default: no
    #LogClean yes
    # Use system logger (can work together with LogFile).
    # Default: no
    #LogSyslog yes
    # Specify the type of syslog messages - please refer to 'man syslog'
    # for facility names.
    # Default: LOG_LOCAL6
    #LogFacility LOG_MAIL
    # Enable verbose logging.
    # Default: no
    #LogVerbose yes
    # Log additional information about the infected file, such as its
    # size and hash, together with the virus name.
    #ExtendedDetectionInfo yes
    # This option allows you to save a process identifier of the listening
    # daemon (main thread).
    # Default: disabled
    PidFile /run/clamav/clamd.pid
    # Optional path to the global temporary directory.
    # Default: system specific (usually /tmp or /var/tmp).
    TemporaryDirectory /tmp
    # Path to the database directory.
    # Default: hardcoded (depends on installation options)
    DatabaseDirectory /var/lib/clamav
    # Only load the official signatures published by the ClamAV project.
    # Default: no
    OfficialDatabaseOnly yes
    # The daemon can work in local mode, network mode or both.
    # Due to security reasons we recommend the local mode.
    # Path to a local socket file the daemon will listen on.
    # Default: disabled (must be specified by a user)
    LocalSocket /var/lib/clamav/clamd.sock
    # Sets the group ownership on the unix socket.
    # Default: disabled (the primary group of the user running clamd)
    LocalSocketGroup clamav
    # Sets the permissions on the unix socket to the specified mode.
    # Default: disabled (socket is world accessible)
    #LocalSocketMode 660
    # Remove stale socket after unclean shutdown.
    # Default: yes
    #FixStaleSocket yes
    # TCP port address.
    # Default: no
    #TCPSocket 3310
    # TCP address.
    # By default we bind to INADDR_ANY, probably not wise.
    # Enable the following to provide some degree of protection
    # from the outside world.
    # Default: no
    #TCPAddr 127.0.0.1
    # Maximum length the queue of pending connections may grow to.
    # Default: 200
    #MaxConnectionQueueLength 30
    # Clamd uses FTP-like protocol to receive data from remote clients.
    # If you are using clamav-milter to balance load between remote clamd daemons
    # on firewall servers you may need to tune the options below.
    # Close the connection when the data size limit is exceeded.
    # The value should match your MTA's limit for a maximum attachment size.
    # Default: 25M
    #StreamMaxLength 10M
    # Limit port range.
    # Default: 1024
    #StreamMinPort 30000
    # Default: 2048
    #StreamMaxPort 32000
    # Maximum number of threads running at the same time.
    # Default: 10
    #MaxThreads 20
    # Waiting for data from a client socket will timeout after this time (seconds).
    # Default: 120
    #ReadTimeout 300
    # This option specifies the time (in seconds) after which clamd should
    # timeout if a client doesn't provide any initial command after connecting.
    # Default: 5
    #CommandReadTimeout 5
    # This option specifies how long to wait (in miliseconds) if the send buffer is full.
    # Keep this value low to prevent clamd hanging
    # Default: 500
    #SendBufTimeout 200
    # Maximum number of queued items (including those being processed by MaxThreads threads)
    # It is recommended to have this value at least twice MaxThreads if possible.
    # WARNING: you shouldn't increase this too much to avoid running out of file descriptors,
    # the following condition should hold:
    # MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024)
    # Default: 100
    #MaxQueue 200
    # Waiting for a new job will timeout after this time (seconds).
    # Default: 30
    #IdleTimeout 60
    # Don't scan files and directories matching regex
    # This directive can be used multiple times
    # Default: scan all
    #ExcludePath ^/proc/
    #ExcludePath ^/sys/
    # Maximum depth directories are scanned at.
    # Default: 15
    #MaxDirectoryRecursion 20
    # Follow directory symlinks.
    # Default: no
    #FollowDirectorySymlinks yes
    # Follow regular file symlinks.
    # Default: no
    #FollowFileSymlinks yes
    # Scan files and directories on other filesystems.
    # Default: yes
    #CrossFilesystems yes
    # Perform a database check.
    # Default: 600 (10 min)
    #SelfCheck 600
    # Execute a command when virus is found. In the command string %v will
    # be replaced with the virus name.
    # Default: no
    #VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v"
    # Run as another user (clamd must be started by root for this option to work)
    # Default: don't drop privileges
    User clamav
    # Initialize supplementary group access (clamd must be started by root).
    # Default: no
    #AllowSupplementaryGroups no
    # Stop daemon when libclamav reports out of memory condition.
    #ExitOnOOM yes
    # Don't fork into background.
    # Default: no
    #Foreground yes
    # Enable debug messages in libclamav.
    # Default: no
    #Debug yes
    # Do not remove temporary files (for debug purposes).
    # Default: no
    #LeaveTemporaryFiles yes
    # Detect Possibly Unwanted Applications.
    # Default: no
    #DetectPUA yes
    # Exclude a specific PUA category. This directive can be used multiple times.
    # See http://www.clamav.net/support/pua for the complete list of PUA
    # categories.
    # Default: Load all categories (if DetectPUA is activated)
    #ExcludePUA NetTool
    #ExcludePUA PWTool
    # Only include a specific PUA category. This directive can be used multiple
    # times.
    # Default: Load all categories (if DetectPUA is activated)
    #IncludePUA Spy
    #IncludePUA Scanner
    #IncludePUA RAT
    # In some cases (eg. complex malware, exploits in graphic files, and others),
    # ClamAV uses special algorithms to provide accurate detection. This option
    # controls the algorithmic detection.
    # Default: yes
    #AlgorithmicDetection yes
    ## Executable files
    # PE stands for Portable Executable - it's an executable file format used
    # in all 32 and 64-bit versions of Windows operating systems. This option allows
    # ClamAV to perform a deeper analysis of executable files and it's also
    # required for decompression of popular executable packers such as UPX, FSG,
    # and Petite. If you turn off this option, the original files will still be
    # scanned, but without additional processing.
    # Default: yes
    #ScanPE yes
    # Executable and Linking Format is a standard format for UN*X executables.
    # This option allows you to control the scanning of ELF files.
    # If you turn off this option, the original files will still be scanned, but
    # without additional processing.
    # Default: yes
    #ScanELF yes
    # With this option clamav will try to detect broken executables (both PE and
    # ELF) and mark them as Broken.Executable.
    # Default: no
    #DetectBrokenExecutables yes
    ## Documents
    # This option enables scanning of OLE2 files, such as Microsoft Office
    # documents and .msi files.
    # If you turn off this option, the original files will still be scanned, but
    # without additional processing.
    # Default: yes
    #ScanOLE2 yes
    # With this option enabled OLE2 files with VBA macros, which were not
    # detected by signatures will be marked as "Heuristics.OLE2.ContainsMacros".
    # Default: no
    #OLE2BlockMacros no
    # This option enables scanning within PDF files.
    # If you turn off this option, the original files will still be scanned, but
    # without decoding and additional processing.
    # Default: yes
    #ScanPDF yes
    ## Mail files
    # Enable internal e-mail scanner.
    # If you turn off this option, the original files will still be scanned, but
    # without parsing individual messages/attachments.
    # Default: yes
    #ScanMail yes
    # Scan RFC1341 messages split over many emails.
    # You will need to periodically clean up $TemporaryDirectory/clamav-partial directory.
    # WARNING: This option may open your system to a DoS attack.
    # Never use it on loaded servers.
    # Default: no
    #ScanPartialMessages yes
    # With this option enabled ClamAV will try to detect phishing attempts by using
    # signatures.
    # Default: yes
    #PhishingSignatures yes
    # Scan URLs found in mails for phishing attempts using heuristics.
    # Default: yes
    #PhishingScanURLs yes
    # Always block SSL mismatches in URLs, even if the URL isn't in the database.
    # This can lead to false positives.
    # Default: no
    #PhishingAlwaysBlockSSLMismatch no
    # Always block cloaked URLs, even if URL isn't in database.
    # This can lead to false positives.
    # Default: no
    #PhishingAlwaysBlockCloak no
    # Allow heuristic match to take precedence.
    # When enabled, if a heuristic scan (such as phishingScan) detects
    # a possible virus/phish it will stop scan immediately. Recommended, saves CPU
    # scan-time.
    # When disabled, virus/phish detected by heuristic scans will be reported only at
    # the end of a scan. If an archive contains both a heuristically detected
    # virus/phish, and a real malware, the real malware will be reported
    # Keep this disabled if you intend to handle "*.Heuristics.*" viruses
    # differently from "real" malware.
    # If a non-heuristically-detected virus (signature-based) is found first,
    # the scan is interrupted immediately, regardless of this config option.
    # Default: no
    #HeuristicScanPrecedence yes
    ## Data Loss Prevention (DLP)
    # Enable the DLP module
    # Default: No
    #StructuredDataDetection yes
    # This option sets the lowest number of Credit Card numbers found in a file
    # to generate a detect.
    # Default: 3
    #StructuredMinCreditCardCount 5
    # This option sets the lowest number of Social Security Numbers found
    # in a file to generate a detect.
    # Default: 3
    #StructuredMinSSNCount 5
    # With this option enabled the DLP module will search for valid
    # SSNs formatted as xxx-yy-zzzz
    # Default: yes
    #StructuredSSNFormatNormal yes
    # With this option enabled the DLP module will search for valid
    # SSNs formatted as xxxyyzzzz
    # Default: no
    #StructuredSSNFormatStripped yes
    ## HTML
    # Perform HTML normalisation and decryption of MS Script Encoder code.
    # Default: yes
    # If you turn off this option, the original files will still be scanned, but
    # without additional processing.
    #ScanHTML yes
    ## Archives
    # ClamAV can scan within archives and compressed files.
    # If you turn off this option, the original files will still be scanned, but
    # without unpacking and additional processing.
    # Default: yes
    #ScanArchive yes
    # Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR).
    # Default: no
    #ArchiveBlockEncrypted no
    ## Limits
    # The options below protect your system against Denial of Service attacks
    # using archive bombs.
    # This option sets the maximum amount of data to be scanned for each input file.
    # Archives and other containers are recursively extracted and scanned up to this
    # value.
    # Value of 0 disables the limit
    # Note: disabling this limit or setting it too high may result in severe damage
    # to the system.
    # Default: 100M
    #MaxScanSize 150M
    # Files larger than this limit won't be scanned. Affects the input file itself
    # as well as files contained inside it (when the input file is an archive, a
    # document or some other kind of container).
    # Value of 0 disables the limit.
    # Note: disabling this limit or setting it too high may result in severe damage
    # to the system.
    # Default: 25M
    #MaxFileSize 30M
    # Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR
    # file, all files within it will also be scanned. This options specifies how
    # deeply the process should be continued.
    # Note: setting this limit too high may result in severe damage to the system.
    # Default: 16
    #MaxRecursion 10
    # Number of files to be scanned within an archive, a document, or any other
    # container file.
    # Value of 0 disables the limit.
    # Note: disabling this limit or setting it too high may result in severe damage
    # to the system.
    # Default: 10000
    #MaxFiles 15000
    ## Clamuko settings
    # Enable Clamuko. Dazuko must be configured and running. Clamuko supports
    # both Dazuko (/dev/dazuko) and DazukoFS (/dev/dazukofs.ctrl). DazukoFS
    # is the preferred option. For more information please visit www.dazuko.org
    # Default: no
    #ClamukoScanOnAccess yes
    # The number of scanner threads that will be started (DazukoFS only).
    # Having multiple scanner threads allows Clamuko to serve multiple
    # processes simultaneously. This is particularly beneficial on SMP machines.
    # Default: 3
    #ClamukoScannerCount 3
    # Don't scan files larger than ClamukoMaxFileSize
    # Value of 0 disables the limit.
    # Default: 5M
    #ClamukoMaxFileSize 10M
    # Set access mask for Clamuko (Dazuko only).
    # Default: no
    #ClamukoScanOnOpen yes
    #ClamukoScanOnClose yes
    #ClamukoScanOnExec yes
    # Set the include paths (all files inside them will be scanned). You can have
    # multiple ClamukoIncludePath directives but each directory must be added
    # in a seperate line. (Dazuko only)
    # Default: disabled
    #ClamukoIncludePath /home
    #ClamukoIncludePath /students
    # Set the exclude paths. All subdirectories are also excluded. (Dazuko only)
    # Default: disabled
    #ClamukoExcludePath /home/bofh
    # With this option you can whitelist specific UIDs. Processes with these UIDs
    # will be able to access all files.
    # This option can be used multiple times (one per line).
    # Default: disabled
    #ClamukoExcludeUID 0
    # With this option enabled ClamAV will load bytecode from the database.
    # It is highly recommended you keep this option on, otherwise you'll miss detections for many new viruses.
    # Default: yes
    #Bytecode yes
    # Set bytecode security level.
    # Possible values:
    # None - no security at all, meant for debugging. DO NOT USE THIS ON PRODUCTION SYSTEMS
    # This value is only available if clamav was built with --enable-debug!
    # TrustSigned - trust bytecode loaded from signed .c[lv]d files,
    # insert runtime safety checks for bytecode loaded from other sources
    # Paranoid - don't trust any bytecode, insert runtime checks for all
    # Recommended: TrustSigned, because bytecode in .cvd files already has these checks
    # Note that by default only signed bytecode is loaded, currently you can only
    # load unsigned bytecode in --enable-debug mode.
    # Default: TrustSigned
    #BytecodeSecurity TrustSigned
    # Set bytecode timeout in miliseconds.
    # Default: 5000
    # BytecodeTimeout 1000
    My freshclam.conf:
    ## Please read the freshclam.conf(5) manual before editing this file.
    # Comment or remove the line below.
    #Example
    # Path to the database directory.
    # WARNING: It must match clamd.conf's directive!
    # Default: hardcoded (depends on installation options)
    #DatabaseDirectory /var/lib/clamav
    # Path to the log file (make sure it has proper permissions)
    # Default: disabled
    UpdateLogFile /var/log/clamav/freshclam.log
    # Maximum size of the log file.
    # Value of 0 disables the limit.
    # You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
    # and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
    # in bytes just don't use modifiers.
    # Default: 1M
    #LogFileMaxSize 2M
    # Log time with each message.
    # Default: no
    #LogTime yes
    # Enable verbose logging.
    # Default: no
    #LogVerbose yes
    # Use system logger (can work together with UpdateLogFile).
    # Default: no
    #LogSyslog yes
    # Specify the type of syslog messages - please refer to 'man syslog'
    # for facility names.
    # Default: LOG_LOCAL6
    #LogFacility LOG_MAIL
    # This option allows you to save the process identifier of the daemon
    # Default: disabled
    #PidFile /var/run/freshclam.pid
    # By default when started freshclam drops privileges and switches to the
    # "clamav" user. This directive allows you to change the database owner.
    # Default: clamav (may depend on installation options)
    #DatabaseOwner clamav
    # Initialize supplementary group access (freshclam must be started by root).
    # Default: no
    #AllowSupplementaryGroups yes
    # Use DNS to verify virus database version. Freshclam uses DNS TXT records
    # to verify database and software versions. With this directive you can change
    # the database verification domain.
    # WARNING: Do not touch it unless you're configuring freshclam to use your
    # own database verification domain.
    # Default: current.cvd.clamav.net
    #DNSDatabaseInfo current.cvd.clamav.net
    # Uncomment the following line and replace XY with your country
    # code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
    # You can use db.XY.ipv6.clamav.net for IPv6 connections.
    #DatabaseMirror db.XY.clamav.net
    # database.clamav.net is a round-robin record which points to our most
    # reliable mirrors. It's used as a fall back in case db.XY.clamav.net is
    # not working. DO NOT TOUCH the following line unless you know what you
    # are doing.
    DatabaseMirror database.clamav.net
    # How many attempts to make before giving up.
    # Default: 3 (per mirror)
    #MaxAttempts 5
    # With this option you can control scripted updates. It's highly recommended
    # to keep it enabled.
    # Default: yes
    #ScriptedUpdates yes
    # By default freshclam will keep the local databases (.cld) uncompressed to
    # make their handling faster. With this option you can enable the compression;
    # the change will take effect with the next database update.
    # Default: no
    #CompressLocalDatabase no
    # With this option you can provide custom sources (http:// or file://) for
    # database files. This option can be used multiple times.
    # Default: no custom URLs
    #DatabaseCustomURL http://myserver.com/mysigs.ndb
    #DatabaseCustomURL file:///mnt/nfs/local.hdb
    # Number of database checks per day.
    # Default: 12 (every two hours)
    #Checks 24
    # Proxy settings
    # Default: disabled
    #HTTPProxyServer myproxy.com
    #HTTPProxyPort 1234
    #HTTPProxyUsername myusername
    #HTTPProxyPassword mypass
    # If your servers are behind a firewall/proxy which applies User-Agent
    # filtering you can use this option to force the use of a different
    # User-Agent header.
    # Default: clamav/version_number
    #HTTPUserAgent SomeUserAgentIdString
    # Use aaa.bbb.ccc.ddd as client address for downloading databases. Useful for
    # multi-homed systems.
    # Default: Use OS'es default outgoing IP address.
    #LocalIPAddress aaa.bbb.ccc.ddd
    # Send the RELOAD command to clamd.
    # Default: no
    NotifyClamd /etc/clamav/clamd.conf
    # Run command after successful database update.
    # Default: disabled
    #OnUpdateExecute command
    # Run command when database update process fails.
    # Default: disabled
    #OnErrorExecute command
    # Run command when freshclam reports outdated version.
    # In the command string %v will be replaced by the new version number.
    # Default: disabled
    #OnOutdatedExecute command
    # Don't fork into background.
    # Default: no
    #Foreground yes
    # Enable debug messages in libclamav.
    # Default: no
    #Debug yes
    # Timeout in seconds when connecting to database server.
    # Default: 30
    #ConnectTimeout 60
    # Timeout in seconds when reading from database server.
    # Default: 30
    #ReceiveTimeout 60
    # With this option enabled, freshclam will attempt to load new
    # databases into memory to make sure they are properly handled
    # by libclamav before replacing the old ones.
    # Default: yes
    #TestDatabases yes
    # When enabled freshclam will submit statistics to the ClamAV Project about
    # the latest virus detections in your environment. The ClamAV maintainers
    # will then use this data to determine what types of malware are the most
    # detected in the field and in what geographic area they are.
    # Freshclam will connect to clamd in order to get recent statistics.
    # Default: no
    #SubmitDetectionStats /path/to/clamd.conf
    # Country of origin of malware/detection statistics (for statistical
    # purposes only). The statistics collector at ClamAV.net will look up
    # your IP address to determine the geographical origin of the malware
    # reported by your installation. If this installation is mainly used to
    # scan data which comes from a different location, please enable this
    # option and enter a two-letter code (see http://www.iana.org/domains/root/db/)
    # of the country of origin.
    # Default: disabled
    #DetectionStatsCountry country-code
    # This option enables support for our "Personal Statistics" service.
    # When this option is enabled, the information on malware detected by
    # your clamd installation is made available to you through our website.
    # To get your HostID, log on http://www.stats.clamav.net and add a new
    # host to your host list. Once you have the HostID, uncomment this option
    # and paste the HostID here. As soon as your freshclam starts submitting
    # information to our stats collecting service, you will be able to view
    # the statistics of this clamd installation by logging into
    # http://www.stats.clamav.net with the same credentials you used to
    # generate the HostID. For more information refer to:
    # http://www.clamav.net/support/faq/faq-cctts/
    # This feature requires SubmitDetectionStats to be enabled.
    # Default: disabled
    #DetectionStatsHostID unique-id
    # This option enables support for Google Safe Browsing. When activated for
    # the first time, freshclam will download a new database file (safebrowsing.cvd)
    # which will be automatically loaded by clamd and clamscan during the next
    # reload, provided that the heuristic phishing detection is turned on. This
    # database includes information about websites that may be phishing sites or
    # possible sources of malware. When using this option, it's mandatory to run
    # freshclam at least every 30 minutes.
    # Freshclam uses the ClamAV's mirror infrastructure to distribute the
    # database and its updates but all the contents are provided under Google's
    # terms of use. See http://code.google.com/support/bin/answer.py?answer=70015
    # and http://safebrowsing.clamav.net for more information.
    # Default: disabled
    #SafeBrowsing yes
    # This option enables downloading of bytecode.cvd, which includes additional
    # detection mechanisms and improvements to the ClamAV engine.
    # Default: enabled
    #Bytecode yes
    # Download an additional 3rd party signature database distributed through
    # the ClamAV mirrors. Here you can find a list of available databases:
    # http://www.clamav.net/download/cvd/3rdparty
    # This option can be used multiple times.
    #ExtraDatabase dbname1
    #ExtraDatabase dbname2
    Any help is much appreciated.

    MatejLach wrote:
    clamd is running, user and group clamav all have the relevant permissions as far as I can tell, however upon scanning my mail, I always end up with the following error:
    Scanning error:
    /home/username/.claws-mail/mimetmp/0000000e.mimetmp: lstat() failed: Permission denied. ERROR
    Seems like a permissions error to me... maybe check the actual file it is attempting to scan... I know it is in your home folder, but just to be sure, you might want to check that everything is sane.

  • Can't access safe mode to delete System Security fake anti virus virus. HELP.

    Hi, our SL500 has become infected with "System Security" fake anti virus software. We have tracked down how to remove it.
    http://www.geekstogo.com/forum/system-security-malware-t222291.html
    However when we get to the "reboot your computer in safe mode" (see instructions below) we can't as this is not possible.
    We have tried F8...........Repeatedly . And also  Run->msconfig->BOOT.INI->/SAFEBOOT . But to no avail . Actually we get a pop up stating that Windows  can not find said command and have we typed it in correctly . Please could some one help us as this is driving us insane . One last thing . A computer WITHOUT a "safe mode " option, isn't that kinda of unsafe and a tad.....
    Thanks in advance.  
    Instructions for malware removal. 
    You will need to print out a copy of these instructions, or save them to NotePad and put a shortcut to the file on the desktop so that you can refer to while you complete this procedure as you will be required to boot into Safe Mode where you wont have internet access.
    Please download ATF Cleaner by Atribune.
    Caution: This program is for Windows 2000, XP and Vista only
    Double-click ATF-Cleaner.exe to run the program.
    Under Main choose: Select All
    Click the Empty Selected button.
    If you use Firefox browser
    Click Firefox at the top and choose: Select All
    Click the Empty Selected button.
    NOTE: If you would like to keep your saved passwords, please click No at the prompt.
    If you use Opera browser
    Click Opera at the top and choose: Select All
    Click the Empty Selected button.
    NOTE: If you would like to keep your saved passwords, please click No at the prompt.
    Click Exit on the Main menu to close the program.
    Run MBAM again, only this time perform a full scan and post the log.
    Please click here to download AVP Tool by Kaspersky.
    Save it to your desktop.
    Reboot your computer into SafeMode.
    You can do this by restarting your computer and continually tapping the F8 key until a menu appears.
    Use your up arrow key to highlight SafeMode then hit enter.
    Double click the setup file to run it.
    Click Next to continue.
    It will by default install it to your desktop folder.Click Next.
    Hit ok at the prompt for scanning in Safe Mode.
    It will then open a box There will be a tab that says Automatic scan.
    Under Automatic scan make sure these are checked.
    System Memory
    Startup Objects
    Disk Boot Sectors.
    My Computer.
    Also any other drives (Removable that you may have)
    After that click on Security level then choose Customize then click on the tab that says Heuristic Analyzer then choose Enable Deep rootkit search then choose ok.
    Then choose OK again then you are back to the main screen.
    Then click on Scan at the to right hand Corner.
    It will automatically Neutralize any objects found.
    If some objects are left un-neutralized then click the button that says Neutralize all
    If it says it cannot be Neutralized then chooose The delete option when prompted.
    After that is done click on the reports button at the bottom and save it to file name it Kas.
    Save it somewhere convenient like your desktop and just post only the detected Virus\malware in the report it will be at the very top under Detected post those results in your next reply.
    Note: This tool will self uninstall when you close it so please save the log before closing it.
    In your next reply I would like to see:
    C:\RSIT\info.txt
    MBAM log
    Kaspersky AVP scan results
    Also let me know how the computer is behaving. 
    This post has been edited by Octagonal: Dec 27 2008, 08:08 AM 

    Thanks for trying to help. Sadly, I followed the instructions and it rebooted to the blue screen again.
    It's going to have to go to Apple for repairs now. I'm out of options.
    I am wondering how much easier it would have been if I'd created a time machine restore point. I got what I deserved for failing to do that, but I'm doubtful even that would have worked in this case. It does seem to be because of that piece of widely reported malware that didn't want to leave without causing damage.
    The most frustrating aspect is the safe boot. I get to the desktop but without any menu, finder or dock. It seems to be similar to the problem below...
    http://www.macsmarts.com/?p=109
    But that's for Tiger. I tried that to no effect.
    Like I said, it's going to have to go to Apple now because I've done so many things I don't know if I'm just digging myself a deeper hole.
    Thanks again for offering help.

  • My laptop has a virus, how can i get rid of it?

    My laptop has a virus on it and its called AntiVirus 360. I looked up on google what it is and its a virus that disguises itself as a program to help detect viruses when itself is the virus. I've tried many different programs to try and delete it off my computer but nothing seems to work. I also read that sometimes this virus can appear to have been deleted but then when you reboot the computer it re-installs itself. How can I get rid of it completely and permenantly? I have a friend that works at Best Buy and he said you guys could repair it but it costs about $200. I didn't know if there was anything else I could try that you know of. Please help because it keeps messing with my internet pages and is making my computer slower than it should be.
    Thank you for your time!

    dragonfire6928 wrote:
    My laptop has a virus on it and its called AntiVirus 360. I looked up on google what it is and its a virus that disguises itself as a program to help detect viruses when itself is the virus. I've tried many different programs to try and delete it off my computer but nothing seems to work. I also read that sometimes this virus can appear to have been deleted but then when you reboot the computer it re-installs itself. How can I get rid of it completely and permenantly? I have a friend that works at Best Buy and he said you guys could repair it but it costs about $200. I didn't know if there was anything else I could try that you know of. Please help because it keeps messing with my internet pages and is making my computer slower than it should be.
    Thank you for your time!
    Stuff like that is better known as "spyware/malware" - There are categories of malware not consider viruses (although often they are installed by a virus as a larger payload).
    I would suggest trying Malwarebytes.  If Malwarebytes can't fix it, your best bet is probably to nuke and repave.  (i.e. backup your data files and then reinstall Windows and all applications from scratch.)
    *disclaimer* I am not now, nor have I ever been, an employee of Best Buy, Geek Squad, nor of any of their affiliate, parent, or subsidiary companies.

  • Potential virus, MBR, system recovery

    Dear ThinkPad experts,
    I might have a virus on my ThinkPad T60, and as the Windows XP on it is already messed up, I would like to recover the ThinkPad to original status using the built-in recovery functions.
    I now have two questions concerning that:
    - Given that I recover the system to shipping status using the recovery funktion (ThinkVantage button at start up, etc.), can I be sure that there is no virus active any more, not even in the MBR? Is there a warning function in the ThinkPad in case the MBR is modified?
    - As I know many viruses cannot be found by an antivirus software if run on the infected system itself, I created bootable live antivirus cds (Avira and Dr. Web) and tried to scan the system with those. However, they only seem to find the partitions containing the ThinkPad recovery data, etc., but not the partition containing my WinXP system. Is that normal? Is there a possibility to perform a virus scan 'from the outside' on the partition in some other way?
    Thank you very much, I really appreciate any help to these problems!

    Hi ginkgoz,
    Welcome to the forum!
    I think you can be sure that the recovery partition is free of viruses as long as the security for it wasn't Disabled in the BIOS. While the security is set as Normal/Secure the hidden partition remains hidden from the OS hence the viruses also don't have access to it.
    As for running the antivirus 'from the outside', there's a Norton scanner in recovery partition which you can run on Windows partition to detect viruses.
    Hope it helps. 
    Maliha (I don't work for lenovo)
    ThinkPads:- T400[Win 7], T60[Win 7], IBM 240[Win XP]
    IdeaPad: U350
    Apple:- Macbook Air [Snow Leopard]
    Did someone help you today? Compliment them with a Kudos!
    Was your question answered today? Mark it as an Accepted Solution! 
      Lenovo Deutsche Community     Lenovo Comunidad en Español 
    Visit my YouTube Channel

  • Does Firefox refer me to a microsoft tech if a problem is detected

    I tried to look at a link on facebook and it popped up that Firefox detected 2 viruses and said I should call for help in fixing the problem. The number I was given is 866-415-5853. I called and got someone from Global Access who wanted to remote my pc thru LogMeIN Rescue. He said I had all kinds of problems and security issues with my pc but it could all be fixed for $249.
    What I want to know is this a legitimate message from Firefox security?

    Firefox is a web browser and not a company as that would be Mozilla.
    The Firefox browser would never give you a phone number to call nor would it ever refer you to a third-party service, especially one that charges and or does remote access.
    Firefox itself does not detect viruses as it is not say a antivirus scanner.
    Anyways next time you encounter something like this, ask first instead of after the fact.

  • Installer appears as "blank dos-box type", hangs, anti virus off, firewall off, system win xp 64 bit. all attempts to solve failed. What next?

    installer appears as "blank dos-box type", hangs, anti virus off, firewall off, system win xp 64 bit. all attempts to solve failed. What next?

    Jeff,
    after trying to find, and use screen shot, i tried to access reader
    downloader... instead, found an offline version of reader. after
    installation started getting false reports that appeared as avg pop-ups.
    Within task manager, was able to detect virus / worm running 6 - 8
    services. immediately disconnected my 'net connection. closed all active
    services being run by rogue process. determined it was using two files
    named "lastalive0.dat" and"lastalive1.dat" to determine it's own status...
    upon stopping it's services it controlled, it would soft re-boot to
    resurrect another hijack attempt. tried workaround using secondary boot
    (win 7) to no avail. after two days, i transferred personal data to
    removable media and am in process of installing debian version of linux.
    i thank you for reply and apologize for my tardy response, it was my first
    forum experience
    tim
    On Tue, Mar 31, 2015 at 10:32 AM, Jeff A Wright <[email protected]>

  • Sent pdf to pc which was tagged as having a virus

    Why does the emailed pdf have a detected virus on the pc end?  Could it really have a virus?  Do I have a virus on my mac?  How can I tell?

    Where did this PDF file come from? If it was created on your Mac, this is undoubtedly a false positive on the part of the PC anti-virus software. If it came from somewhere else, it could be malicious. Do you know what the exact malware name is that the anti-virus software is identifying that PDF file as?
    In any case, though, this isn't being caused by malware on your computer.

  • ¿Cómo saber si mi mac tiene virus?

    Hola,
    hace unos días cuando entro a Safari me ha estado apareciendo mucho la página de MacKeeper. También me aparece otra página con música, y otra como para ver películas, en realidad lo noto como anuncios y se empiezan a abrir más páginas mientras más abro páginas.
    Tengo 3 meses con mi mac y soy nueva en esto. 
    ¿Alguien me puede orientar sobre algún programa para mac que detecte virus?
    -Gracias.

    Marisol,
    marisolfrommexico wrote:
    Hi there,
    a few days ago when I go to Safari I have long been appearing MacKeeper page. I also another page appears with music, and other movies to really notice it as advertisements and begin to open more pages the more open pages.
    I have 3 months with my mac and am new at this.
    Can anyone guide me on any mac program that detects viruses?
    -Thank you.
    Try using The Safe Mac Adware Removal Tool.

  • Emet with Anti Virus

    I have sophos anti-virus  installed on my machine with EMET 4.1 sometimes i face problem with  buffer overflow that sophos blocks when i run office for 1st time or any other software. So basically do i need any anti virus with emet or emet is
    clever enough to detects viruses and malwares ??

    EMET is not a replacement for anti-virus threats, as it does not look at the code of a program, or files, it simply prevents vulnerabilities of the memory stacks based on what
    the program is doing with memory locations. It is to be used with anti-virus for a defense in depth strategy, not as a replacement.

  • Issue with spamassassin, now mail not working

    Hi ! I installed spamtrainer almost two months ago. Been feeding the [email protected] for several weeks now , 700 emails each day at least .
    There was very little improvement if none at all. Tried to add "@local_domains_maps = (1)" to amavisd.conf last night thinking it might be the problem , though no virtual domain exist. This was one of the issue on the default Amavisd config. The other one is adding the symbolic link which I already done.
    Computer froze while adding the parameter "@local_domains_maps = (1)", so I manually turn off the Power Mac, then mail stopped altogether. The mails are filing up but the clients couldn't send or receive since this incidence .
    FF is the maincf. and amavis.conf
    All help are greatly appreciated.
    mail:/Users/sysadmin root# postconf -n
    alias_maps = hash:/etc/aliases,hash:/var/mailman/data/aliases
    always_bcc =
    command_directory = /usr/sbin
    config_directory = /etc/postfix
    content_filter = smtp-amavis:[127.0.0.1]:10024
    daemon_directory = /usr/libexec/postfix
    debug_peer_level = 2
    enable_server_options = yes
    html_directory = no
    inet_interfaces = all
    local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    luser_relay =
    mail_owner = postfix
    mailbox_size_limit = 0
    mailbox_transport = cyrus
    mailq_path = /usr/bin/mailq
    manpage_directory = /usr/share/man
    maps_rbl_domains =
    message_size_limit = 31457280
    mydestination = $myhostname,localhost.$mydomain,localhost,mail.cpplaw.com,cpplaw.com
    mydomain = cpplaw.com
    mydomain_fallback = localhost
    myhostname = mail.cpplaw.com
    mynetworks = 127.0.0.1/32,192.168.1.0/24,127.0.0.1
    mynetworks_style = host
    newaliases_path = /usr/bin/newaliases
    owner_request_special = no
    queue_directory = /private/var/spool/postfix
    readme_directory = /usr/share/doc/postfix
    recipient_delimiter = +
    relayhost =
    sample_directory = /usr/share/doc/postfix/examples
    sendmail_path = /usr/sbin/sendmail
    setgid_group = postdrop
    smtpd_client_restrictions = permit_mynetworks permit
    smtpd_tls_key_file =
    unknown_local_recipient_reject_code = 550
    virtual_mailbox_domains =
    virtual_transport = virtual
    mail:/Users/sysadmin root# postconf -n
    alias_maps = hash:/etc/aliases,hash:/var/mailman/data/aliases
    always_bcc =
    command_directory = /usr/sbin
    config_directory = /etc/postfix
    content_filter = smtp-amavis:[127.0.0.1]:10024
    daemon_directory = /usr/libexec/postfix
    debug_peer_level = 2
    enable_server_options = yes
    html_directory = no
    inet_interfaces = all
    local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    luser_relay =
    mail_owner = postfix
    mailbox_size_limit = 0
    mailbox_transport = cyrus
    mailq_path = /usr/bin/mailq
    manpage_directory = /usr/share/man
    maps_rbl_domains =
    message_size_limit = 31457280
    mydestination = $myhostname,localhost.$mydomain,localhost,mail.cpplaw.com,cpplaw.com
    mydomain = cpplaw.com
    mydomain_fallback = localhost
    myhostname = mail.cpplaw.com
    mynetworks = 127.0.0.1/32,192.168.1.0/24,127.0.0.1
    mynetworks_style = host
    newaliases_path = /usr/bin/newaliases
    owner_request_special = no
    queue_directory = /private/var/spool/postfix
    readme_directory = /usr/share/doc/postfix
    recipient_delimiter = +
    relayhost =
    sample_directory = /usr/share/doc/postfix/examples
    sendmail_path = /usr/sbin/sendmail
    setgid_group = postdrop
    smtpd_client_restrictions = permit_mynetworks permit
    smtpd_tls_key_file =
    unknown_local_recipient_reject_code = 550
    virtual_mailbox_domains =
    virtual_transport = virtual
    mail:/Users/sysadmin root#
    _______________________Amavisd.cof_________________________
    use strict;
    # Configuration file for amavisd-new
    # This software is licensed under the GNU General Public License (GPL).
    # See comments at the start of amavisd-new for the whole license text.
    #Sections:
    # Section I - Essential daemon and MTA settings
    # Section II - MTA specific
    # Section III - Logging
    # Section IV - Notifications/DSN, BOUNCE/REJECT/DROP/PASS destiny, quarantine
    # Section V - Per-recipient and per-sender handling, whitelisting, etc.
    # Section VI - Resource limits
    # Section VII - External programs, virus scanners, SpamAssassin
    # Section VIII - Debugging
    #GENERAL NOTES:
    # This file is a normal Perl code, interpreted by Perl itself.
    # - make sure this file (or directory where it resides) is NOT WRITABLE
    # by mere mortals, otherwise it represents a severe security risk!
    # - for values which are interpreted as booleans, it is recommended
    # to use 1 for true, and 0 or undef or '' for false.
    # THIS IS DIFFERENT FROM OLDER AMAVIS VERSIONS where "no" also meant false,
    # now it means true, like any nonempty string does!
    # - Perl syntax applies. Most notably: strings in "" may include variables
    # (which start with $ or @); to include characters @ and $ in double
    # quoted strings, precede them by a backslash; in single-quoted strings
    # the $ and @ lose their special meaning, so it is usually easier to use
    # single quoted strings. Still, in both cases a backslash need to be doubled
    # - variables with names starting with a '@' are lists, the values assigned
    # to them should be lists as well, e.g. ('one@foo', $mydomain, "three");
    # note the comma-separation and parenthesis. If strings in the list
    # do not contain spaces nor variables, a Perl operator qw() may be used
    # as a shorthand to split its argument on whitespace and produce a list
    # of strings, e.g. qw( one@foo example.com three ); Note that the argument
    # to qw is quoted implicitly and no variable interpretation is done within
    # (no '$' variable evaluations). The #-initiated comments can not be used
    # within the string. In other words, $ and # lose their special meaning
    # withing a qw argument, just like within '...' strings.
    # - all e-mail addresses in this file and as used internally by the daemon
    # are in their raw (rfc2821-unquoted and nonbracketed) form, i.e.
    # Bob "Funny" [email protected], not: "Bob \"Funny\" Dude"@example.com
    # and not <"@example.com>; also: '' and not ''.
    # Section I - Essential daemon and MTA settings
    # $MYHOME serves as a quick default for some other configuration settings.
    # More refined control is available with each individual setting further down.
    # $MYHOME is not used directly by the program. No trailing slash!
    #$MYHOME = '/var/lib/amavis'; # (default is '/var/amavis')
    # : $mydomain serves as a quick default for some other configuration settings.
    # : More refined control is available with each individual setting further down.
    # : $mydomain is never used directly by the program.
    $mydomain = 'cpplaw.com'; aol.com'; # (no useful default)
    # Set the user and group to which the daemon will change if started as root
    # (otherwise just keep the UID unchanged, and these settings have no effect):
    $daemon_user = 'clamav'; # (no default; customary: vscan or amavis)
    $daemon_group = 'clamav'; # (no default; customary: vscan or amavis)
    # Runtime working directory (cwd), and a place where
    # temporary directories for unpacking mail are created.
    # (no trailing slash, may be a scratch file system)
    $TEMPBASE = $MYHOME; # (must be set if other config vars use is)
    #$TEMPBASE = "$MYHOME/tmp"; # prefer to keep home dir /var/amavis clean?
    # $helpers_home sets environment variable HOME, and is passed as option
    # 'home_dir_for_helpers' to Mail::SpamAssassin::new. It should be a directory
    # on a normal persistent file system, not a scratch or temporary file system
    #$helpers_home = $MYHOME; # (defaults to $MYHOME)
    #$daemon_chroot_dir = $MYHOME; # (default is undef, meaning: do not chroot)
    #$pid_file = "$MYHOME/amavisd.pid"; # (default is "$MYHOME/amavisd.pid")
    #$lock_file = "$MYHOME/amavisd.lock"; # (default is "$MYHOME/amavisd.lock")
    # set environment variables if you want (no defaults):
    $ENV{TMPDIR} = $TEMPBASE; # wise, but usually not necessary
    # MTA SETTINGS, UNCOMMENT AS APPROPRIATE,
    # both $forward_method and $notify_method default to 'smtp:127.0.0.1:10025'
    # POSTFIX, or SENDMAIL in dual-MTA setup, or EXIM V4
    # (set host and port number as required; host can be specified
    # as IP address or DNS name (A or CNAME, but MX is ignored)
    #$forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail
    #$notify_method = $forward_method; # where to submit notifications
    # NOTE: The defaults (above) are good for Postfix or dual-sendmail. You MUST
    # uncomment the approprate settings below if using other setups!
    # SENDMAIL MILTER, using amavis-milter.c helper program:
    #$forward_method = undef; # no explicit forwarding, sendmail does it by itself
    # milter; option -odd is needed to avoid deadlocks
    #$notify_method = 'pipe:flags=q argv=/usr/sbin/sendmail -Ac -i -odd -f ${sender} -- ${recipient}';
    # just a thought: can we use use -Am instead of -odd ?
    # SENDMAIL (old non-milter setup, as relay):
    #$forward_method = 'pipe:flags=q argv=/usr/sbin/sendmail -C/etc/sendmail.orig.cf -i -f ${sender} -- ${recipient}';
    #$notify_method = $forward_method;
    # SENDMAIL (old non-milter setup, amavis.c calls local delivery agent):
    #$forward_method = undef; # no explicit forwarding, amavis.c will call LDA
    #$notify_method = 'pipe:flags=q argv=/usr/sbin/sendmail -Ac -i -f ${sender} -- ${recipient}';
    # EXIM v3 (not recommended with v4 or later, which can use SMTP setup instead):
    #$forward_method = 'pipe:flags=q argv=/usr/sbin/exim -oMr scanned-ok -i -f ${sender} -- ${recipient}';
    #$notify_method = $forward_method;
    # prefer to collect mail for forwarding as BSMTP files?
    #$forward_method = "bsmtp:$MYHOME/out-%i-%n.bsmtp";
    #$notify_method = $forward_method;
    # Net::Server pre-forking settings
    # You may want $max_servers to match the width of your MTA pipe
    # feeding amavisd, e.g. with Postfix the 'Max procs' field in the
    # master.cf file, like the '2' in the: smtp-amavis unix - - n - 2 smtp
    $max_servers = 2; # number of pre-forked children (default 2)
    $max_requests = 10; # retire a child after that many accepts (default 10)
    $child_timeout=5*60; # abort child if it does not complete each task in n sec
    # (default: 8*60 seconds)
    # Check also the settings of @av_scanners at the end if you want to use
    # virus scanners. If not, you may want to delete the whole long assignment
    # to the variable @av_scanners, which will also remove the virus checking
    # code (e.g. if you only want to do spam scanning).
    # Here is a QUICK WAY to completely DISABLE some sections of code
    # that WE DO NOT WANT (it won't even be compiled-in).
    # For more refined controls leave the following two lines commented out,
    # and see further down what these two lookup lists really mean.
    #@bypass_virus_checks_acl = qw( . ); # uncomment to DISABLE anti-virus code
    #@bypass_spam_checks_acl = qw( . ); # uncomment to DISABLE anti-spam code
    # Any setting can be changed with a new assignment, so make sure
    # you do not unintentionally override these settings further down!
    # Lookup list of local domains (see README.lookups for syntax details)
    # NOTE:
    # For backwards compatibility the variable names @local_domains (old) and
    # @local_domains_acl (new) are synonyms. For consistency with other lookups
    # the name @local_domains_acl is now preferred. It also makes it more
    # obviously distinct from the new %local_domains hash lookup table.
    # local_domains* lookup tables are used in deciding whether a recipient
    # is local or not, or in other words, if the message is outgoing or not.
    # This affects inserting spam-related headers for local recipients,
    # limiting recipient virus notifications (if enabled) to local recipients,
    # in deciding if address extension may be appended, and in SQL lookups
    # for non-fqdn addresses. Set it up correctly if you need features
    # that rely on this setting (or just leave empty otherwise).
    # With Postfix (2.0) a quick reminder on what local domains normally are:
    # a union of domains spacified in: $mydestination, $virtual_alias_domains,
    # $virtual_mailbox_domains, and $relay_domains.
    @local_domains_acl = ( ".$mydomain" ); # $mydomain and its subdomains
    # @local_domains_acl = qw(); # default is empty, no recipient treated as local
    # @local_domains_acl = qw( .example.com );
    # @local_domains_acl = qw( .example.com !host.sub.example.net .sub.example.net );
    # @local_domains_acl = ( ".$mydomain", '.example.com', 'sub.example.net' );
    # or alternatively(A), using a Perl hash lookup table, which may be assigned
    # directly, or read from a file, one domain per line; comments and empty lines
    # are ignored, a dot before a domain name implies its subdomains:
    #read_hash(\%local_domains, '/var/amavis/local_domains');
    #or alternatively(B), using a list of regular expressions:
    # $local_domains_re = new_RE( qr'[@.]example\.com$'i );
    # see README.lookups for syntax and semantics
    # Section II - MTA specific (defaults should be ok)
    # if $relayhost_is_client is true, IP address in $notify_method and
    # $forward_method is dynamically overridden with SMTP client peer address
    # if available, which makes possible for several hosts to share one daemon
    #$relayhost_is_client = 1; # (defaults to false)
    #$insert_received_line = 1; # behave like MTA: insert 'Received:' header
    # (does not apply to sendmail/milter)
    # (default is true)
    # AMAVIS-CLIENT PROTOCOL INPUT SETTINGS (e.g. with sendmail milter)
    # (used with amavis helper clients like amavis-milter.c and amavis.c,
    # NOT needed for Postfix and Exim)
    $unix_socketname = "$MYHOME/amavisd.sock"; # amavis helper protocol socket
    #$unix_socketname = undef; # disable listening on a unix socket
    # (default is undef, i.e. disabled)
    # (usual setting is $MYHOME/amavisd.sock)
    # Do we receive quoted or raw addresses from the helper program?
    # (does not apply to SMTP; defaults to true)
    #$gets_addr_in_quoted_form = 1; # "Bob \"Funny\" Dude"@example.com
    #$gets_addr_in_quoted_form = 0; # Bob "Funny" [email protected]
    # SMTP SERVER (INPUT) PROTOCOL SETTINGS (e.g. with Postfix, Exim v4, ...)
    # (used when MTA is configured to pass mail to amavisd via SMTP or LMTP)
    $inet_socket_port = 10024; # accept SMTP on this local TCP port
    # (default is undef, i.e. disabled)
    # multiple ports may be provided: $inet_socket_port = [10024, 10026, 10028];
    # SMTP SERVER (INPUT) access control
    # - do not allow free access to the amavisd SMTP port !!!
    # when MTA is at the same host, use the following (one or the other or both):
    #$inet_socket_bind = '127.0.0.1'; # limit socket bind to loopback interface
    # (default is '127.0.0.1')
    @inet_acl = qw( 127.0.0.1 ); # allow SMTP access only from localhost IP
    # (default is qw( 127.0.0.1 ) )
    # when MTA (one or more) is on a different host, use the following:
    #@inet_acl = qw(127/8 10.1.0.1 10.1.0.2); # adjust the list as appropriate
    #$inet_socket_bind = undef; # bind to all IP interfaces
    # Example1:
    # @inet_acl = qw( 127/8 10/8 172.16/12 192.168/16 );
    # permit only SMTP access from loopback and rfc1918 private address space
    # Example2:
    # @inet_acl = qw( !192.168.1.12 172.16.3.3 !172.16.3/255.255.255.0
    # 127.0.0.1 10/8 172.16/12 192.168/16 );
    # matches loopback and rfc1918 private address space except host 192.168.1.12
    # and net 172.16.3/24 (but host 172.16.3.3 within 172.16.3/24 still matches)
    # Example3:
    # @inet_acl = qw( 127/8
    # !172.16.3.0 !172.16.3.127 172.16.3.0/25
    # !172.16.3.128 !172.16.3.255 172.16.3.128/25 );
    # matches loopback and both halves of the 172.16.3/24 C-class,
    # split into two subnets, except all four broadcast addresses
    # for these subnets
    # See README.lookups for details on specifying access control lists.
    # Section III - Logging
    # true (e.g. 1) => syslog; false (e.g. 0) => logging to file
    $DO_SYSLOG = 0; # (defaults to false)
    #$SYSLOG_LEVEL = 'user.info'; # (defaults to 'mail.info')
    # Log file (if not using syslog)
    $LOGFILE = "/var/log/amavis.log"; # (defaults to empty, no log)
    #NOTE: levels are not strictly observed and are somewhat arbitrary
    # 0: startup/exit/failure messages, viruses detected
    # 1: args passed from client, some more interesting messages
    # 2: virus scanner output, timing
    # 3: server, client
    # 4: decompose parts
    # 5: more debug details
    $log_level = 4; # (defaults to 0)
    # Customizeable template for the most interesting log file entry (e.g. with
    # $log_level=0) (take care to properly quote Perl special characters like '\')
    # For a list of available macros see README.customize .
    # only log infected messages (useful with log level 0):
    # $log_templ = '[? %#V |[? %#F ||banned filename ([%F|,])]|infected ([%V|,])]#
    # [? %#V |[? %#F ||, from=<%o>, to=[<%R>|,][? %i ||, quarantine %i]]#
    # |, from=<%o>, to=[<%R>|,][? %i ||, quarantine %i]]';
    # log both infected and noninfected messages (default):
    $log_templ = '[? %#V |[? %#F |[?%#D|Not-Delivered|Passed]|BANNED name/type (%F)]|INFECTED (%V)], #
    <%o> -> [<%R>|,][? %i ||, quarantine %i], Message-ID: %m, Hits: %c';
    # Section IV - Notifications/DSN, BOUNCE/REJECT/DROP/PASS destiny, quarantine
    # Select notifications text encoding when Unicode-aware Perl is converting
    # text from internal character representation to external encoding (charset
    # in MIME terminology)
    # to be used in RFC 2047-encoded header field bodies, e.g. in Subject:
    #$hdr_encoding = 'iso-8859-1'; # (default: 'iso-8859-1')
    # to be used in notification body text: its encoding and Content-type.charset
    #$bdy_encoding = 'iso-8859-1'; # (default: 'iso-8859-1')
    # Default template texts for notifications may be overruled by directly
    # assigning new text to template variables, or by reading template text
    # from files. A second argument may be specified in a call to read_text(),
    # specifying character encoding layer to be used when reading from the
    # external file, e.g. 'utf8', 'iso-8859-1', or often just $bdy_encoding.
    # Text will be converted to internal character representation by Perl 5.8.0
    # or later; second argument is ignored otherwise. See PerlIO::encoding,
    # Encode::PerlIO and perluniintro man pages.
    # $notify_sender_templ = read_text('/var/amavis/notify_sender.txt');
    # $notify_virus_sender_templ= read_text('/var/amavis/notify_virus_sender.txt');
    # $notify_virus_admin_templ = read_text('/var/amavis/notify_virus_admin.txt');
    # $notify_virus_recips_templ= read_text('/var/amavis/notify_virus_recips.txt');
    # $notify_spam_sender_templ = read_text('/var/amavis/notify_spam_sender.txt');
    # $notify_spam_admin_templ = read_text('/var/amavis/notify_spam_admin.txt');
    # If notification template files are collectively available in some directory,
    # use read_l10n_templates which calls read_text for each known template.
    # read_l10n_templates('/etc/amavis/en_US');
    # Here is an overall picture (sequence of events) of how pieces fit together
    # (only virus controls are shown, spam controls work the same way):
    # bypass_virus_checks set for all recipients? ==> PASS
    # no viruses? ==> PASS
    # log virus if $log_templ is nonempty
    # quarantine if $virus_quarantine_to is nonempty
    # notify admin if $virus_admin (lookup) nonempty
    # notify recips if $warnvirusrecip and (recipient is local or $warn_offsite)
    # add address extensions for local recipients (when enabled)
    # send (non-)delivery notifications
    # to sender if DSN needed (BOUNCE) or ($warnvirussender and D_PASS)
    # virus_lovers or final_destiny==D_PASS ==> PASS
    # DISCARD (2xx) or REJECT (5xx) (depending on final_*_destiny)
    # Equivalent flow diagram applies for spam checks.
    # If a virus is detected, spam checking is skipped entirely.
    # The following symbolic constants can be used in *destiny settings:
    # D_PASS mail will pass to recipients, regardless of bad contents;
    # D_DISCARD mail will not be delivered to its recipients, sender will NOT be
    # notified. Effectively we lose mail (but will be quarantined
    # unless disabled). Not a decent thing to do for a mailer.
    # D_BOUNCE mail will not be delivered to its recipients, a non-delivery
    # notification (bounce) will be sent to the sender by amavisd-new;
    # Exception: bounce (DSN) will not be sent if a virus name matches
    # $viruses_that_fake_sender_re, or to messages from mailing lists
    # (Precedence: bulk|list|junk);
    # D_REJECT mail will not be delivered to its recipients, sender should
    # preferably get a reject, e.g. SMTP permanent reject response
    # (e.g. with milter), or non-delivery notification from MTA
    # (e.g. Postfix). If this is not possible (e.g. different recipients
    # have different tolerances to bad mail contents and not using LMTP)
    # amavisd-new sends a bounce by itself (same as D_BOUNCE).
    # Notes:
    # D_REJECT and D_BOUNCE are similar, the difference is in who is responsible
    # for informing the sender about non-delivery, and how informative
    # the notification can be (amavisd-new knows more than MTA);
    # With D_REJECT, MTA may reject original SMTP, or send DSN (delivery status
    # notification, colloquially called 'bounce') - depending on MTA;
    # Best suited for sendmail milter, especially for spam.
    # With D_BOUNCE, amavisd-new (not MTA) sends DSN (can better explain the
    # reason for mail non-delivery, but unable to reject the original
    # SMTP session). Best suited to reporting viruses, and for Postfix
    # and other dual-MTA setups, which can't reject original client SMTP
    # session, as the mail has already been enqueued.
    $final_virus_destiny = D_BOUNCE; # (defaults to D_BOUNCE)
    $final_banned_destiny = D_BOUNCE; # (defaults to D_BOUNCE)
    $final_spam_destiny = D_PASS; # (defaults to D_REJECT)
    $final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested
    # Alternatives to consider for spam:
    # - use D_PASS if clients will do filtering based on inserted mail headers;
    # - use D_DISCARD, if kill_level is set safely high;
    # - use D_BOUNCE instead of D_REJECT if not using milter;
    # There are no sensible alternatives to D_BOUNCE for viruses, but consider:
    # - use D_PASS (or virus_lovers) and $warnvirussender=1 to deliver viruses;
    # - use D_REJECT instead of D_BOUNCE if using milter and under heavy
    # virus storm;
    # Don't bother to set both D_DISCARD and $warn*sender=1, it will get mapped
    # to D_BOUNCE.
    # The separation of *_destiny values into D_BOUNCE, D_REJECT, D_DISCARD
    # and D_PASS made settings $warnvirussender and $warnspamsender only still
    # useful with D_PASS.
    # The following $warn*sender settings are ONLY used when mail is
    # actually passed to recipients ($final_*_destiny=D_PASS, or *_lovers*).
    # Bounces or rejects produce non-delivery status notification anyway.
    # Notify virus sender?
    #$warnvirussender = 1; # (defaults to false (undef))
    # Notify spam sender?
    #$warnspamsender = 1; # (defaults to false (undef))
    # Notify sender of banned files?
    #$warnbannedsender = 1; # (defaults to false (undef))
    # Notify sender of syntactically invalid header containing non-ASCII characters?
    #$warnbadhsender = 1; # (defaults to false (undef))
    # Notify virus (or banned files) RECIPIENT?
    # (not very useful, but some policies demand it)
    #$warnvirusrecip = 1; # (defaults to false (undef))
    #$warnbannedrecip = 1; # (defaults to false (undef))
    # Notify also non-local virus/banned recipients if $warn*recip is true?
    # (including those not matching local_domains*)
    #$warn_offsite = 1; # (defaults to false (undef), i.e. only notify locals)
    # Treat envelope sender address as unreliable and don't send sender
    # notification / bounces if name(s) of detected virus(es) match the list.
    # Note that virus names are supplied by external virus scanner(s) and are
    # not standardized, so virus names may need to be adjusted.
    # See README.lookups for syntax.
    $viruses_that_fake_sender_re = new_RE(
    qr'nimda|hybris|klez|bugbear|yaha|braid|sobig|fizzer|palyh|peido|holar'i );
    # where to send ADMIN VIRUS NOTIFICATIONS (should be a fully qualified address)
    # - the administrator address may be a simple fixed e-mail address (a scalar),
    # or may depend on the SENDER address (e.g. its domain), in which case
    # a ref to a hash table can be specified (specify lower-cased keys,
    # dot is a catchall, see README.lookups).
    # Empty or undef lookup disables virus admin notifications.
    $virus_admin = '[email protected]';
    # $virus_admin = undef; # do not send virus admin notifications (default)
    # $virus_admin = {'not.example.com' => '', '.' => '[email protected]'};
    # $virus_admin = '[email protected]';
    # equivalent to $virus_admin, but for spam admin notifications:
    #$spam_admin = '[email protected]';# $spam_admin = undef; # do not send spam admin notifications (default)
    # $spam_admin = {'not.example.com' => '', '.' => '[email protected]'};
    #advanced example, using a hash lookup table:
    # - $virus_admin = {
    # '[email protected]' => '[email protected]',
    # '.sub1.example.com' => '[email protected]',
    # '.sub2.example.com' => '', # don't send admin notifications
    # 'a.sub3.example.com' => '[email protected]',
    # '.sub3.example.com' => '[email protected]',
    # '.example.com' => '[email protected]', # catchall for our virus senders
    # '.' => '[email protected]', # catchall for the rest
    # whom notification reports are sent from (ENVELOPE SENDER);
    # may be a null reverse path, or a fully qualified address:
    # (admin and recip sender addresses default to $mailfrom
    # for compatibility, which in turn defaults to undef (empty) )
    # If using strings in double quotes, don't forget to quote @, i.e. \@
    $mailfrom_notify_admin = "virusalert\@$mydomain";
    $mailfrom_notify_recip = "virusalert\@$mydomain";
    $mailfrom_notify_spamadmin = "spam.police\@$mydomain";
    # 'From' HEADER FIELD for sender and admin notifications.
    # This should be a replyable address, see rfc1894. Not to be confused
    # with $mailfrom_notify_sender, which is the envelope address and
    # should be empty (null reverse path) according to rfc2821.
    # $hdrfrom_notify_sender = "amavisd-new <postmaster\@$mydomain>";
    # $hdrfrom_notify_sender = 'amavisd-new <[email protected]>';
    # (defaults to: "amavisd-new <postmaster\@$myhostname>")
    # $hdrfrom_notify_admin = $mailfrom_notify_admin;
    # (defaults to: $mailfrom_notify_admin)
    # $hdrfrom_notify_spamadmin = $mailfrom_notify_spamadmin;
    # (defaults to: $mailfrom_notify_spamadmin)
    # whom quarantined messages appear to be sent from (envelope sender)
    $mailfrom_to_quarantine = undef; # original sender if undef, or set explicitly
    # (default is undef)
    # Location to put infected mail into: (applies to 'local:' quarantine method)
    # empty for not quarantining, may be a file (mailbox),
    # or a directory (no trailing slash)
    # (the default value is undef, meaning no quarantine)
    $QUARANTINEDIR = '/var/virusmails';
    #$virus_quarantine_method = "local:virus-%i-%n"; # default
    #$spam_quarantine_method = "local:spam-%b-%i-%n"; # default
    #use the new 'bsmtp:' method as an alternative to the default 'local:'
    #$virus_quarantine_method = "bsmtp:$QUARANTINEDIR/virus-%i-%n.bsmtp";
    #$spam_quarantine_method = "bsmtp:$QUARANTINEDIR/spam-%b-%i-%n.bsmtp";
    # When using the 'local:' quarantine method (default), the following applies:
    # A finer control of quarantining is available through variable
    # $virus_quarantine_to/$spam_quarantine_to. It may be a simple scalar string,
    # or a ref to a hash lookup table, or a regexp lookup table object,
    # which makes possible to set up per-recipient quarantine addresses.
    # The value of scalar $virus_quarantine_to/$spam_quarantine_to (or a
    # per-recipient lookup result from the hash table %$virus_quarantine_to)
    # is/are interpreted as follows:
    # VARIANT 1:
    # empty or undef disables quarantine;
    # VARIANT 2:
    # a string NOT containg an '@';
    # amavisd will behave as a local delivery agent (LDA) and will quarantine
    # viruses to local files according to hash %local_delivery_aliases (pseudo
    # aliases map) - see subroutine mail_to_local_mailbox() for details.
    # Some of the predefined aliases are 'virus-quarantine' and 'spam-quarantine'.
    # Setting $virus_quarantine_to ($spam_quarantine_to) to this string will:
    # * if $QUARANTINEDIR is a directory, each quarantined virus will go
    # to a separate file in the $QUARANTINEDIR directory (traditional
    # amavis style, similar to maildir mailbox format);
    # * otherwise $QUARANTINEDIR is treated as a file name of a Unix-style
    # mailbox. All quarantined messages will be appended to this file.
    # Amavisd child process must obtain an exclusive lock on the file during
    # delivery, so this may be less efficient than using individual files
    # or forwarding to MTA, and it may not work across NFS or other non-local
    # file systems (but may be handy for pickup of quarantined files via IMAP
    # for example);
    # VARIANT 3:
    # any email address (must contain '@').
    # The e-mail messages to be quarantined will be handed to MTA
    # for delivery to the specified address. If a recipient address local to MTA
    # is desired, you may leave the domain part empty, e.g. 'infected@', but the
    # '@' character must nevertheless be included to distinguish it from variant 2.
    # This method enables more refined delivery control made available by MTA
    # (e.g. its aliases file, other local delivery agents, dealing with
    # privileges and file locking when delivering to user's mailbox, nonlocal
    # delivery and forwarding, fan-out lists). Make sure the mail-to-be-quarantined
    # will not be handed back to amavisd for checking, as this will cause a loop
    # (hopefully broken at some stage)! If this can be assured, notifications
    # will benefit too from not being unecessarily virus-scanned.
    # By default this is safe to do with Postfix and Exim v4 and dual-sendmail
    # setup, but probably not safe with sendmail milter interface without
    # precaution.
    # (the default value is undef, meaning no quarantine)
    #$virus_quarantine_to = '[email protected]'; # traditional local quarantine
    #$virus_quarantine_to = 'infected@'; # forward to MTA for delivery
    #$virus_quarantine_to = "virus-quarantine\@$mydomain"; # similar
    #$virus_quarantine_to = '[email protected]'; # similar
    #$virus_quarantine_to = undef; # no quarantine
    #$virus_quarantine_to = new_RE( # per-recip multiple quarantines
    # [qr'^user@example\.com$'i => 'infected@'],
    # [qr'^(.*)@example\.com$'i => 'virus-${1}@example.com'],
    # [qr'^(.*)(@[^@])?$'i => 'virus-${1}${2}'],
    # [qr/.*/ => 'virus-quarantine'] );
    # similar for spam
    # (the default value is undef, meaning no quarantine)
    #$spam_quarantine_to = '[email protected]';
    #$spam_quarantine_to = "spam-quarantine\@$mydomain";
    #$spam_quarantine_to = new_RE( # per-recip multiple quarantines
    # [qr'^(.*)@example\.com$'i => 'spam-${1}@example.com'],
    # [qr/.*/ => 'spam-quarantine'] );
    # In addition to per-recip quarantine, a by-sender lookup is possible. It is
    # similar to $spam_quarantine_to, but the lookup key is the sender address:
    #$spam_quarantine_bysender_to = undef; # dflt: no by-sender spam quarantine
    # Add X-Virus-Scanned header field to mail?
    $X_HEADER_TAG = 'X-Virus-Scanned'; # (default: undef)
    # Leave empty to add no header field # (default: undef)
    $X_HEADER_LINE = "by amavisd-new at $mydomain";
    $remove_existing_x_scanned_headers = 0; # leave existing X-Virus-Scanned alone
    #$remove_existing_x_scanned_headers= 1; # remove existing headers
    # (defaults to false)
    $remove_existing_spam_headers = 0; # leave existing X-Spam* headers alone
    #$remove_existing_spam_headers = 1; # remove existing spam headers if
    # spam scanning is enabled (default)
    # set $bypass_decode_parts to true if you only do spam scanning, or if you
    # have a good virus scanner that can deal with compression and recursively
    # unpacking archives by itself, and save amavisd the trouble.
    # Disabling decoding also causes banned_files checking to only see
    # MIME names and MIME content types, not the content classification types
    # as provided by the file(1) utility.
    # It is a double-edged sword, make sure you know what you are doing!
    #$bypass_decode_parts = 1; # (defaults to false)
    # don't trust this file type or corresponding unpacker for this file type,
    # keep both the original and the unpacked file
    # (lookup key is what file(1) utility returned):
    $keep_decoded_original_re = new_RE(
    qr'^(ASCII|text|uuencoded|xxencoded|binhex)'i,
    # Checking for banned MIME types and names. If any mail part matches,
    # the whole mail is rejected, much like the way viruses are handled.
    # A list in object $banned_filename_re can be defined to provide a list
    # of Perl regular expressions to be matched against each part's:
    # * Content-Type value (both declared and effective mime-type),
    # including the possible security risk content types
    # message/partial and message/external-body, as specified by rfc2046;
    # * declared (recommended) file names as specified by MIME subfields
    # Content-Disposition.filename and Content-Type.name, both in their
    # raw (encoded) form and in rfc2047-decoded form if applicable;
    # * file content type as guessed by 'file(1)' utility, both the raw result
    # from file(1), as well as short type name, classified into names such as
    # .asc, .txt, .html, .doc, .jpg, .pdf, .zip, .exe, ..., which is always
    # beginning with a dot - see subroutine determine_file_types().
    # This step is done only if $bypass_decode_parts is not true.
    # * leave $banned_filename_re undefined to disable these checks
    # (giving an empty list to new_RE() will also always return false)
    $banned_filename_re = new_RE(
    qr'\.[a-zA-Z][a-zA-Z0-9]{0,3}\.(vbs|pif|scr|bat|com|exe|dll)$'i, # double extension
    # qr'.\.(exe|vbs|pif|scr|bat|com)$'i, # banned extension - basic
    # qr'.\.(ade|adp|bas|bat|chm|cmd|com|cpl|crt|exe|hlp|hta|inf|ins|isp|js|
    # jse|lnk|mdb|mde|msc|msi|msp|mst|pcd|pif|reg|scr|sct|shs|shb|vb|
    # vbe|vbs|wsc|wsf|wsh)$'ix, # banned extension - long
    # qr'^\.(exe|zip|lha|tnef)$'i, # banned file(1) types
    # qr'^application/x-msdownload$'i, # banned MIME types
    # qr'^message/partial$'i, qr'^message/external-body$'i, # rfc2046
    # See http://support.microsoft.com/default.aspx?scid=kb;EN-US;q262631
    # and http://www.cknow.com/vtutor/vtextensions.htm
    # A little trick: a pattern qr'\.exe$' matches both a short type name '.exe',
    # as well as any file name which happens to end with .exe. If only matching
    # a file name is desired, but not the short name, a pattern qr'.\.exe$'i
    # or similar may be used, which requires that at least one character preceeds
    # the '.exe', and so it will never match short file types, which always start
    # with a dot.
    # Section V - Per-recipient and per-sender handling, whitelisting, etc.
    # %virus_lovers, @virus_lovers_acl and $virus_lovers_re lookup tables:
    # (these should be considered policy options, they do not disable checks,
    # see bypas*checks for that!)
    # Exclude certain RECIPIENTS from virus filtering by adding their lower-cased
    # envelope e-mail address (or domain only) to the hash %virus_lovers, or to
    # the access list @virus_lovers_acl - see README.lookups and examples.
    # Make sure the appropriate form (e.g. external/internal) of address
    # is used in case of virtual domains, or when mapping external to internal
    # addresses, etc. - this is MTA-specific.
    # Notifications would still be generated however (see the overall
    # picture above), and infected mail (if passed) gets additional header:
    # X-AMaViS-Alert: INFECTED, message contains virus: ...
    # (header not inserted with milter interface!)
    # NOTE (milter interface only): in case of multiple recipients,
    # it is only possible to drop or accept the message in its entirety - for all
    # recipients. If all of them are virus lovers, we'll accept mail, but if
    # at least one recipient is not a virus lover, we'll discard the message.
    # %bypass_virus_checks, @bypass_virus_checks_acl and $bypass_virus_checks_re
    # lookup tables:
    # (this is mainly a time-saving option, unlike virus_lovers* !)
    # Similar in concept to %virus_lovers, a hash %bypass_virus_checks,
    # access list @bypass_virus_checks_acl and regexp list $bypass_virus_checks_re
    # are used to skip entirely the decoding, unpacking and virus checking,
    # but only if ALL recipients match the lookup.
    # %bypass_virus_checks/@bypass_virus_checks_acl/$bypass_virus_checks_re
    # do NOT GUARANTEE the message will NOT be checked for viruses - this may
    # still happen when there is more than one recipient for a message, and
    # not all of them match these lookup tables. To guarantee virus delivery,
    # a recipient must also match %virus_lovers/@virus_lovers_acl lookups
    # (but see milter limitations above),
    # NOTE: it would not be clever to base virus checks on SENDER address,
    # since there are no guarantees that it is genuine. Many viruses
    # and spam messages fake sender address. To achieve selective filtering
    # based on the source of the mail (e.g. IP address, MTA port number, ...),
    # use mechanisms provided by MTA if available.
    # Similar to lookup tables controlling virus checking, there exist
    # spam scanning, banned names/types, and headers_checks control counterparts:
    # %spam_lovers, @spam_lovers_acl, $spam_lovers_re
    # %banned_files_lovers, @banned_files_lovers_acl, $banned_files_lovers_re
    # %bad_header_lovers, @bad_header_lovers_acl, $bad_header_lovers_re
    # and:
    # %bypass_spam_checks/@bypass_spam_checks_acl/$bypass_spam_checks_re
    # %bypass_banned_checks/@bypass_banned_checks_acl/$bypass_banned_checks_re
    # %bypass_header_checks/@bypass_header_checks_acl/$bypass_header_checks_re
    # See README.lookups for details about the syntax.
    # The following example disables spam checking altogether,
    # since it matches any recipient e-mail address (any address
    # is a subdomain of the top-level root DNS domain):
    # @bypass_spam_checks_acl = qw( . );
    # @bypass_header_checks_acl = qw( [email protected] );
    # @bad_header_lovers_acl = qw( [email protected] );
    # See README.lookups for further detail, and examples below.
    # $virus_lovers{lc("postmaster\@$mydomain")} = 1;
    # $virus_lovers{lc('[email protected]')} = 1;
    # $virus_lovers{lc('[email protected]')} = 1;
    # $virus_lovers{lc('some.user@')} = 1; # this recipient, regardless of domain
    # $virus_lovers{lc('[email protected]')} = 0; # never, even if domain matches
    # $virus_lovers{lc('example.com')} = 1; # this domain, but not its subdomains
    # $virus_lovers{lc('.example.com')}= 1; # this domain, including its subdomains
    #or:
    # @virus_lovers_acl = qw( [email protected] !lab.xxx.com .xxx.com yyy.org );
    # $bypass_virus_checks{lc('[email protected]')} = 1;
    # @bypass_virus_checks_acl = qw( some.ddd !butnot.example.com .example.com );
    # @virus_lovers_acl = qw( [email protected] );
    # $virus_lovers_re = new_RE( qr'(helpdesk|postmaster)@example\.com$'i );
    # $spam_lovers{lc("postmaster\@$mydomain")} = 1;
    # $spam_lovers{lc('[email protected]')} = 1;
    # $spam_lovers{lc('[email protected]')} = 1;
    # @spam_lovers_acl = qw( !.example.com );
    # $spam_lovers_re = new_RE( qr'^user@example\.com$'i );
    # don't run spam check for these RECIPIENT domains:
    # @bypass_spam_checks_acl = qw( d1.com .d2.com a.d3.com );
    # or the other way around (bypass check for all BUT these):
    # @bypass_spam_checks_acl = qw( !d1.com !.d2.com !a.d3.com . );
    # a practical application: don't check outgoing mail for spam:
    # @bypass_spam_checks_acl = ( "!.$mydomain", "." );
    # (a downside of which is that such mail will not count as ham in SA bayes db)
    # Where to find SQL server(s) and database to support SQL lookups?
    # A list of triples: (dsn,user,passw). (dsn = data source name)
    # Specify more than one for multiple (backup) SQL servers.
    # See 'man DBI', 'man DBD::mysql', 'DBD::Pg', ... for details.
    # @lookup_sql_dsn =
    # ( ['DBI:mysql:mail:host1', 'some-username1', 'some-password1'],
    # ['DBI:mysql:mail:host2', 'some-username2', 'some-password2'] );
    # ('mail' in the example is the database name, choose what you like)
    # With PostgreSQL the dsn (first element of the triple) may look like:
    # 'DBI:Pg:host=host1;dbname=mail'
    # The SQL select clause to fetch per-recipient policy settings.
    # The %k will be replaced by a comma-separated list of query addresses
    # (e.g. full address, domain only, catchall). Use ORDER, if there
    # is a chance that multiple records will match - the first match wins.
    # If field names are not unique (e.g. 'id'), the later field overwrites the
    # earlier in a hash returned by lookup, which is why we use '*,users.id'.
    # No need to uncomment the following assignment if the default is ok.
    # $sql_select_policy = 'SELECT *,users.id FROM users,policy'.
    # ' WHERE (users.policy_id=policy.id) AND (users.email IN (%k))'.
    # ' ORDER BY users.priority DESC';
    # The SQL select clause to check sender in per-recipient whitelist/blacklist
    # The first SELECT argument '?' will be users.id from recipient SQL lookup,
    # the %k will be sender addresses (e.g. full address, domain only, catchall).
    # The default value is:
    # $sql_select_white_black_list = 'SELECT wb FROM wblist,mailaddr'.
    # ' WHERE (rid=?) AND (sid=mailaddr.id) AND (mailaddr.email IN (%k))'.
    # ' ORDER BY mailaddr.priority DESC';
    # To disable SQL white/black list, set to undef (otherwise comment-out
    # the following statement, leaving it at the default value):
    $sql_select_white_black_list = undef; # undef disables SQL white/blacklisting
    # If you decide to pass viruses (or spam) to certain recipients using the
    # above lookup tables or using $final_virus_destiny=1, you can set
    # the variable $addr_extension_virus ($addr_extension_spam) to some
    # string, and the recipient address will have this string appended
    # as an address extension to the local-part of the address. This extension
    # can be used by final local delivery agent to place such mail in different
    # folders. Leave these two variables undefined or empty strings to prevent
    # appending address extensions. Setting has no effect on recipient which will
    # not be receiving viruses/spam. Recipients who do not match lookup tables
    # local_domains* are not affected.
    # LDAs usually default to stripping away address extension if no special
    # handling is specified, so having this option enabled normally does no harm,
    # provided the $recipients_delimiter matches the setting on the final
    # MTA's LDA.
    # $addr_extension_virus = 'virus'; # (default is undef, same as empty)
    # $addr_extension_spam = 'spam'; # (default is undef, same as empty)
    # $addr_extension_banned = 'banned'; # (default is undef, same as empty)
    # Delimiter between local part of the recipient address and address extension
    # (which can optionally be added, see variables $addr_extension_virus and
    # $addr_extension_spam). E.g. recipient address <[email protected]> gets changed
    # to <[email protected]>.
    # Delimiter should match equivalent (final) MTA delimiter setting.
    # (e.g. for Postfix add 'recipient_delimiter = +' to main.cf)
    # Setting it to an empty string or to undef disables this feature
    # regardless of $addr_extension_virus and $addr_extension_spam settings.
    $recipient_delimiter = '+'; # (default is '+')
    # true: replace extension; false: append extension
    # $replace_existing_extension = 1; # (default is false)
    # Affects matching of localpart of e-mail addresses (left of '@')
    # in lookups: true = case sensitive, false = case insensitive
    $localpart_is_case_sensitive = 0; # (default is false)
    # ENVELOPE SENDER WHITELISTING / BLACKLISTING - GLOBAL (RECIPIENT-INDEPENDENT)
    # WHITELISTING: use ENVELOPE SENDER lookups to ENSURE DELIVERY from whitelisted
    # senders even if the message is recognized as spam. Effectively, for the
    # specified senders, message RECIPIENTS temporarily become 'spam_lovers', with
    # further processing being the same as otherwise specified for spam lovers.
    # It does not turn off inserting spam-related headers, if they are enabled.
    # BLACKLISTING: messages from specified SENDERS are DECLARED SPAM.
    # Effectively, for messages from blacklisted senders, spam level
    # is artificially pushed high, and the normal spam processing applies,
    # resulting in 'X-Spam-Flag: YES', high 'X-Spam-Level' bar and other usual
    # reactions to spam, including possible rejection. If the message nevertheless
    # still passes (e.g. for spam loving recipients), it is tagged as BLACKLISTED
    # in the 'X-Spam-Status' header field, but the reported spam value and
    # set of tests in this report header field (if available from SpamAssassin,
    # which may have not been called) is not adjusted.
    # A sender may be both white- and blacklisted at the same time,
    # settings are independent. For example, being both white- and blacklisted,
    # message is delivered to recipients, but is tagged as spam.
    # If ALL recipients of the message either white- or blacklist the sender,
    # spam scanning (calling the SpamAssassin) is bypassed, saving on time.
    # The following variables (lookup tables) are available, with the semantics
    # and syntax as specified in README.lookups:
    # %whitelist_sender, @whitelist_sender_acl, $whitelist_sender_re
    # %blacklist_sender, @blacklist_sender_acl, $blacklist_sender_re
    # SOME EXAMPLES:
    #ACL:
    # @whitelist_sender_acl = qw( .example.com );
    # @whitelist_sender_acl = ( ".$mydomain" ); # $mydomain and its subdomains
    # NOTE: This is not a reliable way of turning off spam checks for
    # locally-originating mail, as sender address can easily be faked.
    # To reliably avoid spam-scanning outgoing mail,
    # use @bypass_spam_checks_acl .
    #RE:
    # $whitelist_sender_re = new_RE(
    # qr'^postmaster@.*\bexample\.com$'i,
    # qr'^owner-[^@]*@'i, qr'-request@'i,
    # qr'\.example\.com$'i );
    $blacklist_sender_re = new_RE(
    qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou|greatcasino)@'i,
    qr'^(investments|lose_weight_today|market.alert|money2you|MyGreenCard)@'i,
    qr'^(new\.tld\.registry|opt-out|opt-in|optin|saveonlsmoking2002k)@'i,
    qr'^(specialoffer|specialoffers|stockalert|stopsnoring|wantsome)@'i,
    qr'^(workathome|yesitsfree|your_friend|greatoffers)@'i,
    qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i,
    #HASH lookup variant:
    # NOTE: Perl operator qw splits its argument string by whitespace
    # and produces a list. This means that addresses can not contain
    # whitespace, and there is no provision for comments within the string.
    # You can use the normal Perl list syntax if you have special requirements,
    # e.g. map {...} ('one user@bla', '.second.com'), or use read_hash to read
    # addresses from a file.
    # a hash lookup table can be read from a file,
    # one address per line, comments and empty lines are permitted:
    # read_hash(\%whitelist_sender, '/var/amavis/whitelist_sender');
    # ... or set directly:
    # $whitelist_sender{''} = 1; # don't spam-check MTA bounces
    map { $whitelist_sender{lc($_)}=1 } (qw(
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    returns.groups.yahoo.com
    # ENVELOPE SENDER WHITELISTING / BLACKLISTING - PER-RECIPIENT
    # The same semantics as for global white/blacklisting applies, but this
    # time each recipient (or its domain, or subdomain, ...) can be given
    # an individual lookup table for matching senders. The per-recipient lookups
    # override the global lookups, which serve as a fallback default.
    # Specify a two-level lookup table: the key for the outer table is recipient,
    # and the result should be an inner lookup table (hash or ACL or RE),
    # where the key used will be the sender.
    #$per_recip_blacklist_sender_lookup_tables = {
    # '[email protected]'=>new_RE(qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i),
    # '[email protected]'=>[qw( [email protected],org .d2.example,org )],
    #$per_recip_whitelist_sender_lookup_tables = {
    # '[email protected]' => [qw( [email protected] .other.example.org )],
    # '.my1.example.com' => [qw( !foe.other.example,org .other.example,org )],
    # '.my2.example.com' => read_hash('/var/amavis/my2-wl.dat'),
    # 'abuse@' => { 'postmaster@'=>1,
    # '[email protected]'=>1, '[email protected]'=>1 },
    # Section VI - Resource limits
    # Sanity limit to the number of allowed recipients per SMTP transaction
    # $smtpd_recipient_limit = 1000; # (default is 1000)
    # Resource limitations to protect against mail bombs (e.g. 42.zip)
    # Maximum recursion level for extraction/decoding (0 or undef disables limit)
    $MAXLEVELS = 14; # (default is undef, no limit)
    # Maximum number of extracted files (0 or undef disables the limit)
    $MAXFILES = 1500; # (default is undef, no limit)
    # For the cumulative total of all decoded mail parts we set max storage size
    # to defend against mail bombs. Even though parts may be deleted (replaced
    # by decoded text) during decoding, the size they occupied is _not_ returned
    # to the quota pool.
    # Parameters to storage quota formula for unpacking/decoding/decompressing
    # Formula:
    # quota = max($MIN_EXPANSION_QUOTA,
    # $mail_size*$MIN_EXPANSION_FACTOR,
    # min($MAX_EXPANSION_QUOTA, $mail_size*$MAX_EXPANSION_FACTOR))
    # In plain words (later condition overrules previous ones):
    # allow MAX_EXPANSION_FACTOR times initial mail size,
    # but not more than MAX_EXPANSION_QUOTA,
    # but not less than MIN_EXPANSION_FACTOR times initial mail size,
    # but never less than MIN_EXPANSION_QUOTA
    $MIN_EXPANSION_QUOTA = 100*1024; # bytes (default undef, not enforced)
    $MAX_EXPANSION_QUOTA = 300*1024*1024; # bytes (default undef, not enforced)
    $MIN_EXPANSION_FACTOR = 5; # times original mail size (must be specified)
    $MAX_EXPANSION_FACTOR = 500; # times original mail size (must be specified)
    # Section VII - External programs, virus scanners
    # Specify a path string, which is a colon-separated string of directories
    # (no trailing slashes!) to be assigned to the environment variable PATH
    # and to serve for locating external programs below.
    # NOTE: if $daemon_chroot_dir is nonempty, the directories will be
    # relative to the chroot directory specified;
    $path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';
    # Specify one string or a search list of strings (first match wins).
    # The string (or: each string in a list) may be an absolute path,
    # or just a program name, to be located via $path;
    # Empty string or undef (=default) disables the use of that external program.
    # Optionally command arguments may be specified - only the first substring
    # up to the whitespace is used for file searching.
    $file = 'file'; # file(1) utility; use 3.41 or later to avoid vulnerability
    $gzip = 'gzip';
    $bzip2 = 'bzip2';
    $lzop = 'lzop';
    $uncompress = ['uncompress', 'gzip -d', 'zcat'];
    $unfreeze = ['unfreeze', 'freeze -d', 'melt', 'fcat'];
    $arc = ['nomarch', 'arc'];
    $unarj = ['arj', 'unarj']; # both can extract, same options
    $unrar = ['rar', 'unrar']; # both can extract, same options
    $zoo = 'zoo';
    $lha = 'lha';
    $cpio = 'cpio';
    # SpamAssassin settings
    # $sa_local_tests_only is passed to Mail::SpamAssassin::new as a value
    # of the option local_tests_only. See Mail::SpamAssassin man page.
    # If set to 1, no tests that require internet access will be performed.
    $sa_local_tests_only = 1; # (default: false)
    #$sa_auto_whitelist = 1; # turn on AWL (default: false)
    $sa_mail_body_size_limit = 64*1024; # don't waste time on SA if mail is larger
    # (less than 1% of spam is > 64k)
    # default: undef, no limitations
    # default values, can be overridden by more specific lookups, e.g. SQL
    $sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
    $sa_tag2_level_deflt = 3.0; # add 'spam detected' headers at that level
    $sa_kill_level_deflt = 22.0;
    #$sa_kill_level_deflt = $sa_tag2_level_deflt; # triggers spam evasive actions
    # at or above that level: bounce/reject/drop,
    # quarantine, and adding mail address extension
    # The $sa_tag_level_deflt, $sa_tag2_level_deflt and $sa_kill_level_deflt
    # may also be hashrefs to hash lookup tables, to make static per-recipient
    # settings possible without having to resort to SQL or LDAP lookups.
    # a quick reference:
    # tag_level controls adding the X-Spam-Status and X-Spam-Level headers,
    # tag2_level controls adding 'X-Spam-Flag: YES', and editing Subject,
    # kill_level controls 'evasive actions' (reject, quarantine, extensions);
    # it only makes sense to maintain the relationship:
    # tag_level <= tag2_level <= kill_level
    # string to prepend to Subject header field when message exceeds tag2 level
    $sa_spam_subject_tag = '*** JUNK MAIL ***'; # (defaults to undef, disables)
    # (only seen when spam is not to be rejected
    # and recipient is in local_domains*)
    $sa_spam_modifies_subj = 1; # may be a ref to a lookup table, default is true
    # Example: modify Subject for all local recipients except [email protected]
    #$sa_spam_modifies_subj = [qw( [email protected] . )];
    # @av_scanners is a list of n-tuples, where fields semantics is:
    # 1. av scanner plain name, to be used in log and reports;
    # 2. scanner program name; this string will be submitted to subroutine
    # find_external_programs(), which will try to find the full program
    # path name; if program is not found, this scanner is disabled.
    # Besides a simple string (full program path name or just the basename
    # to be looked for in PATH), this may be an array ref of alternative
    # program names or full paths - the first match in the list will be used;
    # As a special case for more complex scanners, this field may be
    # a subroutine reference, and the whole n-tuple is passed to it as args.
    # 3. command arguments to be given to the scanner program;
    # a substring {} will be replaced by the directory name to be scanned,
    # i.e. "$tempdir/parts"
    # 4. an array ref of av scanner exit status values, or a regexp (to be
    # matched against scanner output), indicating NO VIRUSES found;
    # 5. an array ref of av scanner exit status values, or a regexp (to be
    # matched against scanner output), indicating VIRUSES WERE FOUND;
    # Note: the virus match prevails over a 'not found' match, so it is safe
    # even if 4. matches for viruses too;
    # 6. a regexp (to be matched against scanner output), returning a list
    # of virus names found.
    # 7. and 8.: (optional) subroutines to be executed before and after scanner
    # (e.g. to set environment or current directory);
    # see examples for these at KasperskyLab AVP and Sophos sweep.
    # NOTES:
    # - NOT DEFINING @av_scanners (e.g. setting it to empty list, or deleting the
    # whole assignment) TURNS OFF LOADING AND COMPILING OF THE ANTIVIRUS CODE
    # (which can be handy if all you want to do is spam scanning);
    # - the order matters: although _all_ available entries from the list are
    # always tried regardless of their verdict, scanners are run in the order
    # specified: the report from the first one detecting a virus will be used
    # (providing virus names and scanner output); REARRANGE THE ORDER TO WILL;
    # - it doesn't hurt to keep an unused command line scanner entry in the list
    # if the program can not be found; the path search is only performed once
    # during the program startup;
    # CORROLARY: to disable a scanner that _does_ exist on your system,
    # comment out its entry or use undef or '' as its program name/path
    # (second parameter). An example where this is almost a must: disable
    # Sophos 'sweep' if you have its daemonized version Sophie or SAVI-Perl
    # (same for Trophie/vscan, and clamd/clamscan), or if another unrelated
    # program happens to have a name matching one of the entries ('sweep'
    # again comes to mind);
    # - it DOES HURT to keep unwanted entries which use INTERNAL SUBROUTINES
    # for interfacing (where the second parameter starts with \&).
    # Keeping such entry and not having a corresponding virus scanner daemon
    # causes an unnecessary connection attempt (which eventually times out,
    # but it wastes precious time). For this reason the daemonized entries
    # are commented in the distribution - just remove the '#' where needed.
    @av_scanners = (
    # ### http://www.vanja.com/tools/sophie/
    # ['Sophie',
    # \&ask_daemon, ["{}/\n", '/var/run/sophie'],
    # qr/(?x)^ 0+ ( : | [\000\r\n]* $)/, qr/(?x)^ 1 ( : | [\000\r\n]* $)/,
    # qr/(?x)^ [-+]? \d+ : (.*?) [\000\r\n]* $/ ],
    # ### http://www.csupomona.edu/~henson/www/projects/SAVI-Perl/
    # ['Sophos SAVI', \&sophos_savi ],
    # ### http://clamav.elektrapro.com/
    # ['Clam Antivirus-clamd',
    # \&ask_daemon, ["CONTSCAN {}\n", '/var/amavis/clamd'],
    # qr/\bOK$/, qr/\bFOUND$/,
    # qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
    # # NOTE: run clamd under the same user as amavisd,
    # # match the socket name in clamav.conf to the socket name in this entry
    # ### http://www.openantivirus.org/
    # ['OpenAntiVirus ScannerDaemon (OAV)',
    # \&ask_daemon, ["SCAN {}\n", '127.0.0.1:8127'],
    # qr/^OK/, qr/^FOUND: /, qr/^FOUND: (.+)/ ],
    # ### http://www.vanja.com/tools/trophie/
    # ['Trophie',
    # \&ask_daemon, ["{}/\n", '/var/run/trophie'],
    # qr/(?x)^ 0+ ( : | [\000\r\n]* $)/, qr/(?x)^ 1 ( : | [\000\r\n]* $)/,
    # qr/(?x)^ [-+]? \d+ : (.*?) [\000\r\n]* $/ ],
    # ### http://www.f-prot.com/
    # ['FRISK F-Prot Daemon',
    # \&ask_daemon,
    # ["GET {}/*?-dumb%20-archive HTTP/1.0\r\n\r\n",
    # ['127.0.0.1:10200','127.0.0.1:10201','127.0.0.1:10202',
    # '127.0.0.1:10203','127.0.0.1:10204'] ],
    # qr/(?i)<summary[^>]*>clean<\/summary>/,
    # qr/(?i)<summary[^>]*>infected<\/summary>/,
    # qr/(?i)<name>(.+)<\/name>/ ],
    ['KasperskyLab AntiViral Toolkit Pro (AVP)', ['avp','kavscanner'],
    "-* -P -B -Y -O- {}", [0,3,8], [2,4], # any use for -A -K ?
    qr/infected: (.+)/,
    sub {chdir('/opt/AVP') or die "Can't chdir to AVP: $!"},
    sub {chdir($TEMPBASE) or die "Can't chdir back to $TEMPBASE $!"},
    ['KasperskyLab AVPDaemonClient',
    [ '/opt/AVP/kavdaemon', 'kavdaemon',
    '/opt/AVP/AvpDaemonClient', 'AvpDaemonClient',
    '/opt/AVP/AvpTeamDream', 'AvpTeamDream',
    '/opt/AVP/avpdc', 'avpdc' ],
    '{}', [0,8], [3,4,5,6], qr/infected: ([^\r\n]+)/ ],
    # change the startup-script in /etc/init.d/kavd to:
    # DPARMS="-I0 -Y -* /var/amavis"
    # adjusting /var/amavis above to match your $TEMPBASE.
    # NOTE: cd /opt/AVP/DaemonClients; configure; cd Sample; make
    # cp AvpDaemonClient /opt/AVP/
    ### http://www.hbedv.com/ or http://www.centralcommand.com/
    ['H+BEDV AntiVir or CentralCommand Vexira Antivirus',
    ['antivir','vexira'],
    '--allfiles -noboot -nombr -rs -s -z {}', [0], qr/ALERT:|VIRUS:/,
    qr/(?x)^\s* (?: ALERT: \s* (?: \[ | [^']* ' ) |
    (?i) VIRUS:\ .*?\ virus\ '?) ( [^\]\s']+ )/ ],
    # NOTE: remove the -z if you only have a demo version
    ### http://www.commandsoftware.com/
    ['Command AntiVirus for Linux', 'csav',
    '-all -archive -packed {}', [50], [51,52,53],
    qr/Infection: (.+)/ ],
    ### http://www.symantec.com/
    ['Symantec CarrierScan via Symantec CommandLineScanner',
    ['cscmdline','savsecls'],
    '-a scan -i 1 -v -s 127.0.0.1:7777 {}',
    qr/Files Infected: 0/, qr/^Infected: /,
    qr/Info:\s+(.+)/ ],
    ### http://drweb.imshop.de/
    ['DrWeb Antivirus for Linux/FreeBSD/Solaris', 'drweb',
    '-al -ar -fm -go -ha -ml -ot -sd -up {}',
    [0], [1], sub {('no-name')} ],
    ### http://www.f-secure.com/products/anti-virus/
    ['F-Secure Antivirus', 'fsav',
    '--dumb --archive {}', [0], [3,8],
    qr/(?:infection|Infected): (.+)/ ],
    ['CAI InoculateIT', 'inocucmd',
    '-sec -nex {}', [0], [100],
    qr/was infected by virus (.+)/ ],
    ['MkS_Vir for Linux (beta)', ['mks32','mks'],
    '-s {}/*', [0], [1,2],
    qr/--[ \t]*(.+)/ ],
    ['MkS_Vir daemon',
    'mksscan', '-s -q {}', [0], [1..7],
    qr/^... (\S+)/ ],
    ### http://www.nod32.com/
    ['ESET Software NOD32', 'nod32',
    '-all -subdir+ {}', [0], [1,2],
    qr/^.+? - (.+?)\s*(?:backdoor|joke|trojan|virus|worm)/ ],
    ### http://www.nod32.com/
    ['ESET Software NOD32 - Client/Server Version', 'nod32cli',
    '-a -r -d recurse --heur standard {}', [0], [10,11],
    qr/^\S+\s+infected:\s+(.+)/ ],
    ### http://www.norman.com/products_nvc.shtml
    ['Norman Virus Control v5 / Linux', 'nvccmd',
    '-c -l:0 -s -u {}', [0], [1],
    qr/(?i).* virus in .* -> \'(.+)\'/ ],
    ### http://www.pandasoftware.com/
    ['Panda Antivirus for Linux', ['pavcl','pavc'],
    '-aut -aex -heu -cmp -nor -nso -eng {}',
    qr/Number of files infected\.*: 0(?!\d)/,
    qr/Number of files infected\.*: 0*[1-9]/,
    qr/Found virus :\s*(\S+)/ ],
    # Check your RAV license terms before fiddling with the following two lines!
    # ['GeCAD RAV AntiVirus 8', 'ravav',
    # '--all --archive --mail {}', [1], [2,3,4,

    You are welcome. I'm glad you got it back up.
    (1) You say you did the symbolic link. I will assume this is set correctly; it's very important that it is.
    (2) I don't know what you mean by "Been feeding the [email protected] for several weeks now, 700 emails each day at least." After the initial training period, SpamAssassin doesn't learn from mail it has already processed correctly. At this point, you only need to teach SpamAssassin when it is wrong. [email protected] should only be getting spam that is being passed as clean. Likewise, [email protected] should only be getting legitimate mail that is being flagged as junk. You are redirecting mail to both [email protected] and [email protected] ... right? SpamAssassin needs both.
    (3) Next, as I said before, you need to implement those "Frontline spam defense for Mac OS X Server." Once you have that done and issue "postfix reload" you can look at your SMTP log in Server Admin and watch as Postfix blocks one piece of junk mail after another. It's kind of cool.
    (4) Add some SARE rules:
    Visit http://www.rulesemporium.com/rules.htm and download the following rules:
    70sareadult.cf
    70saregenlsubj0.cf
    70sareheader0.cf
    70sarehtml0.cf
    70sareobfu0.cf
    70sareoem.cf
    70sarespoof.cf
    70sarestocks.cf
    70sareunsub.cf
    72sare_redirectpost
    Visit http://www.rulesemporium.com/other-rules.htm and download the following rules:
    backhair.cf
    bogus-virus-warnings.cf
    chickenpox.cf
    weeds.cf
    Copy these rules to /etc/mail/spamassassin/
    Then stop and restart mail services.
    There are other things you can do, and you'll find differing opinions about such things. In general, I think implementing the "Frontline spam defense for Mac OS X Server" and adding the SARE rules will help a lot. Good luck!

Maybe you are looking for