

Thank you for the work you do.
RvdH wrote: ↑2022-05-10 16:46Latest is 5.6.9-B2587.47 (forgot to post)
Simplyinstall the latest production and/or beta artifact from the URL below, then copy and overwrite files in this archive in hmailserver '/bin' directory
https://build.hmailserver.com/viewLog.h ... =artifacts (login as guest)
- Added: OnHELO(oClient) event, issue #153
- Fix: Incorrect DEBUG logging for event 'OnDeliverMessage', issue #181
- Added: Include HTMLBody into IMAP TEXT search, pull #193
- Fix: implicit conversion: "int" to "unsigned char" pull #204
- Fix: Faulty SMTP 'Disconnect client after too many invalid commands' pull issue #160
- Fix: SMTP server error "550 Unsupported ESMTP extension" on MAIL FROM:... AUTH=<> [with fix] issue #164
- Fix: Removed warning if backup was more than 1,5GB and 15GB limit. There's no longer a recommended max-size - the time will vary with the installation size. issue #69
- Fix: Speed up 'update hm_messages set messageflags' issue #221
- Added: threat authenticated users as localsender if the sender is authenticated and AuthUserIsLocal=1 INI setting Office 2016/2019 Bug
- Added: Return-Path header as topmost header before sending the message to SA (+ delete Return-Path header after the SA check completes) issue #116
- Added: Event OnClientLogon(oClient), New ClientInfo property oClient.Authenticated (Boolean)
- Fix: Handling of long UIDL response lists was too slow. issue #93
- Fix: When calling SpamAssassin and there was a connection failure, sometimes temporary files were left behind issue #100
- Fix: SURBL detection properly fails to detect url's ending with a query string issue #108
- Fix: If a route is set up, but the recipient does not match an address in the route address list, the domain catch-all should be used if specified. issue #74
- Fix: ExternalFetcher DELE when no RETR, pull pull #254
- Fix: SMTP multiply max message size with 1024 issue #267
- Added: email address variable to SignatureAdder.cpp pull #265
- Fix: DKIM on acccount-rule 'reply' not applied #172 issue #172
- Fix: preserve RewriteEnvelopeFromWhenForwarding setting when forwarding from account rule
- Fix: The logical flow should be to disregard "Require SMTP authentication" if "Allow deliveries from" is unselected issue #287
- Added: ability to DKIM sign NDR messages (forwarded to external) pull #301
- Added: Use custom daemonaddressdomain from INI pull #301
- Fix: SURBL regex pull #320
- A̶d̶d̶e̶d̶:̶ ̶R̶M̶S̶P̶F̶ ̶l̶i̶b̶r̶a̶r̶y̶ ̶S̶p̶a̶m̶T̶e̶s̶t̶S̶P̶F̶ ̶R̶e̶s̶u̶l̶t̶ ̶t̶o̶ ̶D̶E̶B̶U̶G̶ ̶l̶o̶g̶g̶i̶n̶g̶,̶ ̶s̶e̶e̶ ̶t̶h̶i̶s̶ ̶f̶o̶r̶u̶m̶ ̶t̶o̶p̶i̶c̶
- Fix: Ignore SpamTestSPF and SpamTestHeloHost when send thru local IP Address, see this forum topic
- Added: SPF test to include "HELO/EHLO host" used by DNS macros pull 353
- Fix: 'Unencrypted Cleartext Login' vulnerability detection pull 242
- Fix: Anti-spam; Maximum message to scan (KB) is now limited to 256MB, see this forum topic
- Added: "UseDNSCache" INI setting. 1 = Use cache in DNS Client service (default). 0 = Bypass cache in DNS Client service. pull 396
- Fix: AWStats::LogDeliveryFailure was called twice for each message in OnDeliveryFailed pull 368
- Fix: oMessage object was empty (in some circumstances) when called from OnDeliveryFailed pull 369
- Added: Experimental events OnRecipientUnknown(oClient, oMessage) and OnTooManyInvalidCommands(oClient, oMessage) pull #390
- Added: TLS server cipher preference support and support for prioritizing ChaCha20Poly1305 pull 379
- Added: DKIM signature for domain aliases pull 383
- Added: "DNSServer" INI setting. Single (local) DNS server IPv4 addresses to use within hMailServer instead of default system DNS. pull 396
- Added: Auto-Submitted header for auto-generated messages pull 386
- Added: New ClientInfo properties oClient.EncryptedConnection (Boolean), oClient.CipherVersion, oClient.CipherName and oClient.CipherBits pull #391
- Added: DomainMembers DistributionList mode pull #392
- Added: X-hMailServer-Envelope-From header, grouping off all X-hMailServer-* headers, For consistency equalize Return-Path format used within hMailServer, eg: Return-Path: <return-route-addr> (always use angle brackets)
- Fix: integer overflow check for SPF macro segment count pull #399
- Added: New ClientInfo property oClient.SessionID (long) issue #401
- Added: New Status property oApp.Status.ThreadID (long) this forum topic
- Added: rDNS/PTR AntiSpam Check pull #413
- Added: Prefer IPv6 over IPv4 pull #415
- Fix: SpamTestHeloHost IPv6 Fix pull #416
- Fix: Changed ClamAV Scan from STREAM to INSTREAM. issue #420
- Added: MIME Recipient Headers as configurable comma delimited string pull #428
Important! This fork requires you to add an additional entries to the hm_settings database table, eg:
MariaDB, MySQLMSSQLCode: Select all
insert into hm_settings (settingname, settingstring, settinginteger) select 'TlsOptions', '', 0 from dual where not exists (select settingname from hm_settings where settingname='TlsOptions'); insert into hm_settings (settingname, settingstring, settinginteger) select 'ascheckptr', '', 0 from dual where not exists (select settingname from hm_settings where settingname='ascheckptr'); insert into hm_settings (settingname, settingstring, settinginteger) select 'ascheckptrscore', '', 1 from dual where not exists (select settingname from hm_settings where settingname='ascheckptrscore'); insert into hm_settings (settingname, settingstring, settinginteger) select 'IPv6Preferred', '', 0 from dual where not exists (select settingname from hm_settings where settingname='IPv6Preferred'); alter table hm_fetchaccounts add column if not exists famimerecipientheaders varchar(255) not null default 'To,CC,X-RCPT-TO,X-Envelope-To'; update hm_dbversion set value = 5606;
DownloadCode: Select all
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'TlsOptions') INSERT INTO hm_settings(settingname, settingstring, settinginteger) VALUES ('TlsOptions','','0') GO IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptr') insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptr', '', 0) GO IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptrscore') insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptrscore', '', 1) GO IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'IPv6Preferred') insert into hm_settings (settingname, settingstring, settinginteger) values ('IPv6Preferred', '', 0) GO IF NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'hm_fetchaccounts' AND COLUMN_NAME = 'famimerecipientheaders') BEGIN ALTER TABLE hm_fetchaccounts ADD famimerecipientheaders nvarchar(255) NOT NULL DEFAULT 'To,CC,X-RCPT-TO,X-Envelope-To' END; GO UPDATE hm_dbversion SET value = 5606 GO
https://d-fault.nl/files/hMailServer-Bu ... 2587.47.7z
* Included hMailAdmin.exe fixes sorting of DateTime and IPAddress (IP4) values, not reflected in server application version numbering
I dont understand your comment. What are you trying to say? What do you mean?
Has this made its way into 5.7 yet?RvdH wrote: ↑2022-05-10 16:46Latest is 5.6.9-B2587.47 (forgot to post)
- Fix: Changed ClamAV Scan from STREAM to INSTREAM. issue #420
Not that I know of.palinka wrote: ↑2022-06-01 16:18Has this made its way into 5.7 yet?RvdH wrote: ↑2022-05-10 16:46Latest is 5.6.9-B2587.47 (forgot to post)
- Fix: Changed ClamAV Scan from STREAM to INSTREAM. issue #420
Enanle below setting then restart clamavhoover wrote: ↑2022-06-15 02:58Hi
I've just setup a testlab to test out hMailServer 5.6.9-B2587.M56 with ClamAV 0.105.0
using a simple sendmail.exe to throw emails with attachments at the mail server, I seem to be getting some errors when email should be scanned.
mail log:
"DEBUG" 96356 "2022-06-15 01:01:42.718" "Connecting to ClamAV virus scanner..."
"ERROR" 96356 "2022-06-15 01:01:42.718" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to read response (after streaming)."
"DEBUG" 96356 "2022-06-15 01:01:42.718" "Connecting to ClamAV virus scanner..."
"ERROR" 96356 "2022-06-15 01:01:42.733" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to write packet data to stream port."
"DEBUG" 96356 "2022-06-15 01:01:42.733" "Applying rules"
error log
"ERROR" 96356 "2022-06-15 01:05:46.520" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to read response (after streaming)."
"ERROR" 96356 "2022-06-15 01:05:46.536" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to write packet data to stream port."
"ERROR" 96356 "2022-06-15 01:11:49.201" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to write packet size to stream port."
"ERROR" 96356 "2022-06-15 01:11:49.404" "Severity: 3 (Medium), Code: HM5406, Source: ClamAVVirusScanner::Scan, Description: Unable to write packet data to stream port."
server settings
Domains > Limits > Max message size 20000
Settings > protocols > SMTP > Max message size 20000
clamd.conf
StreamMaxLength 20M
MaxScanSize 20M
MaxFileSize 20M
( nothing is set to scan over 20 MB )
I also get the error when running a test through the GUI
AVtest.png
I've tried changing settings and restarting clamd, but cant seem to remove the errors
also done a bit of googling HM5406 and there are some posts for that error, but even when I follow them to match the settings, I'm still getting the errors.
Any ideas would be appreciated..
No problem.vidiot wrote: ↑2022-06-16 19:59Nothing against your build, Soren, but it appears RvdH has returned, as I see posts in other areas. I'm posting to hopefully catch his attention (as download link still broken) and also to thank him for his builds and agree with a previous poster who said there should be a new, better titled, thread for his version (and one for 5.7 too?)
Thanks
Simply install the latest production and/or beta artifact from the URL below, then copy and overwrite files in this archive in hmailserver '/bin' directory
https://build.hmailserver.com/viewLog.h ... =artifacts (login as guest)
Code: Select all
insert into hm_settings (settingname, settingstring, settinginteger)
select 'TlsOptions', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='TlsOptions');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'ascheckptr', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='ascheckptr');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'ascheckptrscore', '', 1 from dual
where not exists
(select settingname from hm_settings where settingname='ascheckptrscore');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'IPv6Preferred', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='IPv6Preferred');
alter table hm_fetchaccounts add column if not exists famimerecipientheaders varchar(255) not null default 'To,CC,X-RCPT-TO,X-Envelope-To';
update hm_dbversion set value = 5606;
Code: Select all
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'TlsOptions')
INSERT INTO hm_settings(settingname, settingstring, settinginteger) VALUES ('TlsOptions','','0')
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptr')
insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptr', '', 0)
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptrscore')
insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptrscore', '', 1)
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'IPv6Preferred')
insert into hm_settings (settingname, settingstring, settinginteger) values ('IPv6Preferred', '', 0)
GO
IF NOT EXISTS (
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'hm_fetchaccounts' AND COLUMN_NAME = 'famimerecipientheaders')
BEGIN
ALTER TABLE hm_fetchaccounts
ADD famimerecipientheaders nvarchar(255) NOT NULL DEFAULT 'To,CC,X-RCPT-TO,X-Envelope-To'
END;
GO
UPDATE hm_dbversion SET value = 5606
GO
Why? Read here
I ran "hMailServer-5.7.0-B2594-x64.exe (login as guest
Oh, now I see .. 5.6.9 (not 5.7) is the correct version to overwrite files ... apfflaurscr wrote: ↑2022-06-24 02:002. I tried to overwrite the files in the bin folder with those at https://d-fault.nl/files/hMailServer-Bu ... 2593.46.7z.
After that, hMailServer service starts but hMailAdmin does not start and rouncube does not connect.
Same build 2595?
I read in the latest versions I can index the body of messages (for searching from the roundcube), but I do not notice that I have this setting active
Code: Select all
"DEBUG" 15144 "2022-06-24 04:05:12.311" "Executing event OnDeliverMessage"
"DEBUG" 15144 "2022-06-24 04:05:12.311" "Event completed"
"DEBUG" 15144 "2022-06-24 04:05:12.311" "Performing local delivery"
"DEBUG" 15144 "2022-06-24 04:05:12.311" "Copying mail contents"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Applying rules"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Applying rule move to shared folder"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Performing rule action"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Performing rule action"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Executing event Unknown"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Saving message: {9B1024C4-3687-40F9-84A3-7F9FF6AF8A43}.eml"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Event completed"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Performing rule action"
"DEBUG" 15144 "2022-06-24 04:05:12.326" "Executing event Unknown"
"DEBUG" 15144 "2022-06-24 04:05:12.342" "Event completed"
Bad news ..
laurscr wrote: ↑2022-06-24 11:19When it worked (before upgrade) I had it in the log:
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Performing local delivery"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Applying rules"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Applying rule Sent"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Moving message to Sent"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Message moved to folder 51"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Saving message: {6F004A6D-B16D-4A7E-AEBC-2AE8B4E9AB94}.eml"
Before upgrade!jimimaseye wrote: ↑2022-06-24 16:01That highlighted entry looks like the rule 'SENT' did operate as expected. The message has been moved.laurscr wrote: ↑2022-06-24 11:19When it worked (before upgrade) I had it in the log:
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Performing local delivery"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Applying rules"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Applying rule Sent"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Moving message to Sent"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Message moved to folder 51"
"DEBUG" 5964 "2022-06-21 04:07:52.257" "Saving message: {6F004A6D-B16D-4A7E-AEBC-2AE8B4E9AB94}.eml"
just curious..
Just had a quick look at the source code ... No _official_ code with "rule" in the filename (.h or .cpp file) has been modified since 2014.laurscr wrote: ↑2022-06-24 23:01Simple rules: like *@domain.com
Because I tried with several versions, even with reinstallation from scratch, it means that something is different in the database, because it is the only constant ... What can be different so that the global rules work and those for the user do not? Is there a "debug" mode to see more in logs?
Trying to validate; From: "Wile E. Coyote" <coyote@acme.inc>laurscr wrote: ↑2022-06-24 23:33News! I replaced rule "wildcard" *@domain.com with "contain" @domain.com and it worked. In conclusion, the wildcard and regex rules do not work ... The global Spam rule worked because it is a "Custom header field" equal rule. What is different about wildcard and regex rules?
* means something in regex...laurscr wrote: ↑2022-06-24 23:33News! I replaced rule "wildcard" *@domain.com with "contain" @domain.com and it worked. In conclusion, the wildcard and regex rules do not work ... The global Spam rule worked because it is a "Custom header field" equal rule. What is different about wildcard and regex rules?
When you don't use ^ or $ then you don't need to use .* or .+ in RegEx. You only use .* and .+ to match a specific string, thus you would use "^.*@domain\.com.*$"palinka wrote: ↑2022-06-25 00:14* means something in regex...laurscr wrote: ↑2022-06-24 23:33News! I replaced rule "wildcard" *@domain.com with "contain" @domain.com and it worked. In conclusion, the wildcard and regex rules do not work ... The global Spam rule worked because it is a "Custom header field" equal rule. What is different about wildcard and regex rules?...and its not "wildcard".
Forget the * - just use contains "@domain.com"
If you want to use regex, its ".*@domain.com" or ".+@domain.com".
Also, you can test the query in the same criteria dialogue box.
I'm rusty after just a few weeks.SorenR wrote: ↑2022-06-25 00:23When you don't use ^ or $ then you don't need to use .* or .+ in RegEx. You only use .* and .+ to match a specific string, thus you would use "^.*@domain\.com.*$"palinka wrote: ↑2022-06-25 00:14* means something in regex...laurscr wrote: ↑2022-06-24 23:33News! I replaced rule "wildcard" *@domain.com with "contain" @domain.com and it worked. In conclusion, the wildcard and regex rules do not work ... The global Spam rule worked because it is a "Custom header field" equal rule. What is different about wildcard and regex rules?...and its not "wildcard".
Forget the * - just use contains "@domain.com"
If you want to use regex, its ".*@domain.com" or ".+@domain.com".
Also, you can test the query in the same criteria dialogue box.
Remember the raw format of "From" is "name" <address@domain>
Logically, you're right. I admit that I never used the star at the end. But it was all right. I tried it now and it works with wildcard if I add a star at the end. Strange that it worked without it. Even so, the question remains, why didn't the rest of the rules work? Anyway, in the end, wildcard also works if I add a star at the endSorenR wrote: ↑2022-06-25 00:14Trying to validate; From: "Wile E. Coyote" <coyote@acme.inc>
From Contains "@acme.inc" = From Wildcard "*@acme.inc*" <== I bet you forgot the wildcard in the end![]()
The reason for the wildcard at the end is the ">" terminating the "From:" header. Sometimes the "From:" header is flawed and only contain the address "coyote@acme.inc" and in that case your original wildcard will work.laurscr wrote: ↑2022-06-25 01:03Logically, you're right. I admit that I never used the star at the end. But it was all right. I tried it now and it works with wildcard if I add a star at the end. Strange that it worked without it. Even so, the question remains, why didn't the rest of the rules work? Anyway, in the end, wildcard also works if I add a star at the endSorenR wrote: ↑2022-06-25 00:14Trying to validate; From: "Wile E. Coyote" <coyote@acme.inc>
From Contains "@acme.inc" = From Wildcard "*@acme.inc*" <== I bet you forgot the wildcard in the end![]()
Thx!
From the whole discussion, I conclude that it is not a bug. The difference is that in the initial version the characters "<>" do not matter. I knew about them, but it worked very well without treating them. After the upgrade it matters!
Doubt it, as previous told by SorenR nothing is changed in that specific code since 2014.
I prefer "(?i).*(@|\.)domain\.com.?" which match any:
It definitely worked before the upgrade without treating the "<>" characters. After the first installation with MSSQLCE, I switched to MySQL and the rules worked very well. For me, only after the upgrade did this problem appear. Interestingly, the problem didn't go away even after I went back to the original version that worked well before. There are probably some circumstances when hms ignores these characters. At least now everything is clear.
That is simply impossible if you went back to exactly the same version you claim it worked on before, don't you agreelaurscr wrote: ↑2022-06-25 02:09It definitely worked before the upgrade without treating the "<>" characters. After the first installation with MSSQLCE, I switched to MySQL and the rules worked very well. For me, only after the upgrade did this problem appear. Interestingly, the problem didn't go away even after I went back to the original version that worked well before.
I understand. I almost can't believe it either
Simply install the latest production and/or beta artifact from the URL below, then copy and overwrite files in this archive in hmailserver '/bin' directory
https://build.hmailserver.com/viewLog.h ... =artifacts (login as guest)
Code: Select all
insert into hm_settings (settingname, settingstring, settinginteger)
select 'TlsOptions', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='TlsOptions');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'ascheckptr', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='ascheckptr');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'ascheckptrscore', '', 1 from dual
where not exists
(select settingname from hm_settings where settingname='ascheckptrscore');
insert into hm_settings (settingname, settingstring, settinginteger)
select 'IPv6Preferred', '', 0 from dual
where not exists
(select settingname from hm_settings where settingname='IPv6Preferred');
alter table hm_fetchaccounts add column if not exists famimerecipientheaders varchar(255) not null default 'To,CC,X-RCPT-TO,X-Envelope-To';
update hm_dbversion set value = 5606;
Code: Select all
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'TlsOptions')
INSERT INTO hm_settings(settingname, settingstring, settinginteger) VALUES ('TlsOptions','','0')
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptr')
insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptr', '', 0)
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'ascheckptrscore')
insert into hm_settings (settingname, settingstring, settinginteger) values ('ascheckptrscore', '', 1)
GO
IF NOT EXISTS(SELECT settingname FROM hm_settings WHERE settingname = 'IPv6Preferred')
insert into hm_settings (settingname, settingstring, settinginteger) values ('IPv6Preferred', '', 0)
GO
IF NOT EXISTS (
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'hm_fetchaccounts' AND COLUMN_NAME = 'famimerecipientheaders')
BEGIN
ALTER TABLE hm_fetchaccounts
ADD famimerecipientheaders nvarchar(255) NOT NULL DEFAULT 'To,CC,X-RCPT-TO,X-Envelope-To'
END;
GO
UPDATE hm_dbversion SET value = 5606
GO