One solution is to upgrade to latest hMailServer AND use MySQL version 5.5.3 or later.
Another solution could be running a script to eliminate those pesky Emoji's.
Subject, From, To and CC can all be UTF8 coded in emails AND all are used for indexing, thus all four headers are included in this script snippet.
Code: Select all
Sub OnAcceptMessage(oClient, oMessage)
Call FixEmojis(oMessage)
End Sub
Sub FixEmojis(oMessage)
Dim strValue, strEmoji, ECFlag, SFlag : SFlag = False
ECFlag = oMessage.EncodeFields
oMessage.EncodeFields = False
' Subject: - header
If (InStr(oMessage.Subject, "=F0=9F=") > 0) Then
strEmoji = Mid(oMessage.Subject, InStr(oMessage.Subject, "=F0=9F="), 12)
strValue = Replace(oMessage.Subject, strEmoji, "")
oMessage.Subject = strValue
SFlag = True
End If
' From: - header
If (InStr(oMessage.From, "=F0=9F=") > 0) Then
strEmoji = Mid(oMessage.From, InStr(oMessage.From, "=F0=9F="), 12)
strValue = Replace(oMessage.From, strEmoji, "")
oMessage.Subject = strValue
SFlag = True
End If
' To: - header
If (InStr(oMessage.To, "=F0=9F=") > 0) Then
strEmoji = Mid(oMessage.To, InStr(oMessage.To, "=F0=9F="), 12)
strValue = Replace(oMessage.To, strEmoji, "")
oMessage.To = strValue
SFlag = True
End If
' CC: - header
If (InStr(oMessage.CC, "=F0=9F=") > 0) Then
strEmoji = Mid(oMessage.CC, InStr(oMessage.CC, "=F0=9F="), 12)
strValue = Replace(oMessage.CC, strEmoji, "")
oMessage.CC = strValue
SFlag = True
End If
If SFlag Then oMessage.Save
oMessage.EncodeFields = ECFlag
End Sub