I have started having several customers having their website emails (contact form, order notification etc) blocked and returned as undeliverable. My hosting is by Krystal and they use Mail Channels to deliver mail and it is Mail Channels blocking the emails. Other hosts may be having similar issues with their Mail Delivery systems.
See my blog post: https://www.graphicz.co.uk/blog/ensu...est-practices/
After much investigation it seems that the messages are being blocked because Sellerdeck does not add a message-id to the emails it sends out.
If you look at the headers of a non delivered email there IS a message-id but it has a dot in the middle
The message ID with the dot in the middle is automatically injected by MailChannels because the message did not have an ID at the point of the initial email transaction.
Sellerdeck support were unhelpful.
To try and avoid SMTP I went to Norman's sendmail patch. As it stands, it doesn't work in v18 but with minor editing I got it to work. It sends out emails WITH a message-id (no dot!) and these are delivered without issue by MailChannels.
Here is the fix:
This needs a host with Perl that supports the Mail::Mailer module
Patching instructions for Actinic.pm (back it up first - use a text editor - not a word processor):-
Look about 25 lines down from the top. You should see a line
ADD the following line immediately after this
Search for the line (there is only one instance)
DELETE the above line and everything following it down to the line above the following fragment
REPLACE the stuff you just deleted with the following new routine:-
===============================================================================================
===================================================================================================
Save and do a site update and that's that.
Norman's original had SendRichMail - I just changed all instances of this to SendMail
Bugs / Quirks.
Some users have reported that the e-mail is sent on one long line.
If this happens open the (patched)Actinic.pm and look for the line
and comment it out by adding "#" at the beginning. I.e.
Save and see if that fixes it.
Remember that if you update Actinic the updater will overwrite patched scripts with new
version and you'll have to redo the patch.
Thank you to Norman www.drillpine.biz (V11) (adapted for v18)
Testing and feedback welcome - posted as a good will thing without warranty express or implied.
See my blog post: https://www.graphicz.co.uk/blog/ensu...est-practices/
After much investigation it seems that the messages are being blocked because Sellerdeck does not add a message-id to the emails it sends out.
If you look at the headers of a non delivered email there IS a message-id but it has a dot in the middle
Code:
1710778280371.2db30d7448aa7d28@website.com
Sellerdeck support were unhelpful.
To try and avoid SMTP I went to Norman's sendmail patch. As it stands, it doesn't work in v18 but with minor editing I got it to work. It sends out emails WITH a message-id (no dot!) and these are delivered without issue by MailChannels.
Here is the fix:
This needs a host with Perl that supports the Mail::Mailer module
Patching instructions for Actinic.pm (back it up first - use a text editor - not a word processor):-
Look about 25 lines down from the top. You should see a line
Code:
use strict;
Code:
use Mail::Mailer;
Code:
sub SendMail
Code:
####################################################### # # GetScriptUrl - retrieve an url to the specified script
REPLACE the stuff you just deleted with the following new routine:-
===============================================================================================
Code:
sub SendMail { #? ACTINIC::ASSERT($#_ >= 4, "Invalid argument count in SendMail ($#_)", __LINE__, __FILE__); # # !!!!!! Thiss. Any changes to its interface will # !!!!!! need to be verified with the various utility scripts. # if ($#_ < 4) { return($::FAILURE, GetPhrase(-1, 12, 'Actinic::SendMail'), 0, 0); } my ($sSmtpServer, $sEmailAddress, $sLocalError, $sSubjectText, $sMessageText, $sMessageHTML, $sBoundary, $sReturnAddress); ($sSmtpServer, $sEmailAddress, $sSubjectText, $sMessageText, $sMessageHTML, $sReturnAddress) = @_; # # Check message content for bare LFs and repair if there are some # $sMessageText =~ s/\r\n/\n/g; # CRLF -> LF $sMessageText =~ s/\r/\n/g; # remaining CR -> LF $sMessageText =~ s/\n/\r\n/g; # all LF -> CRLF # and check the HTML content as well $sMessageHTML =~ s/\r\n/\n/g; # CRLF -> LF $sMessageHTML =~ s/\r/\n/g; # remaining CR -> LF $sMessageHTML =~ s/\n/\r\n/g; # all LF -> CRLF # # Check the return address # if (!$sReturnAddress) # if no return address defined { $sReturnAddress = $sEmailAddress; # use the destination email address } # (V11) use systems sendmail program my $mailer = Mail::Mailer->new(); $mailer->open({ From => $sReturnAddress, To => $sEmailAddress, Subject => $sSubjectText, }) or die "Can't open: $!\n"; print $mailer $sMessageText; $mailer->close(); return($::SUCCESS, '', 0, 0); }
Save and do a site update and that's that.
Norman's original had SendRichMail - I just changed all instances of this to SendMail
Bugs / Quirks.
Some users have reported that the e-mail is sent on one long line.
If this happens open the (patched)Actinic.pm and look for the line
Code:
$sMessageText =~ s/\n/\r\n/g; # all LF -> CRLF
Code:
# $sMessageText =~ s/\n/\r\n/g; # all LF -> CRLF
Remember that if you update Actinic the updater will overwrite patched scripts with new
version and you'll have to redo the patch.
Thank you to Norman www.drillpine.biz (V11) (adapted for v18)
Testing and feedback welcome - posted as a good will thing without warranty express or implied.
Comment