/// <summary> /// Internal helper /// </summary> private static string PrepareCheckRequestMessage(SpamAssassinCheckArgs e) { // Create mini-RFC822 message and translate it to DOS format for spamd. var requestMessage = @"From {SenderEMailAddress} {EMailDateUTC} Received: from {SenderHostName} ({SenderHostAddress}) by {ServerHostName} with HTTP via ZetaSoftware; {EMailDateRFC2822} From: {SenderEMailName} <{ReceiverEMailAddress}> Date: {EMailDateRFC2822} Subject: ZetaSoftware comment To: {ReceiverEMailAddress} {TextToCheck}"; requestMessage = requestMessage.Replace("{SenderEMailName}", e.SenderEMailName); requestMessage = requestMessage.Replace("{SenderEMailAddress}", e.SenderEMailAddress); requestMessage = requestMessage.Replace("{EMailDateUTC}", e.EMailDate.ToUniversalTime().ToString("ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture)); requestMessage = requestMessage.Replace("{SenderHostName}", e.SenderHostName); requestMessage = requestMessage.Replace("{SenderHostAddress}", e.SenderHostAddress); requestMessage = requestMessage.Replace("{ServerHostName}", e.ServerHostName); requestMessage = requestMessage.Replace("{EMailDateRFC2822}", e.EMailDate.ToString("r")); requestMessage = requestMessage.Replace("{ReceiverEMailAddress}", e.ReceiverEMailAddress); requestMessage = requestMessage.Replace("{TextToCheck}", e.TextToCheck); return(requestMessage); }
/// <summary> /// Execute the Check command /// </summary> /// <param name="e"></param> /// <returns></returns> public SpamAssassinCheckResult ExecuteCheck(SpamAssassinCheckArgs e) { string[] additionalLines; var result = new SpamAssassinCheckResult(); var responsePacket = SendMessageEx(SpamAssassinCommands.Check, PrepareCheckRequestMessage(e)); CheckThrowResponsePacket(responsePacket); InterpretCheckResponseMessage(responsePacket.Message, out additionalLines, result); return(result); }
/// <summary> /// Internal helper /// </summary> private static string PrepareCheckRequestMessage(SpamAssassinCheckArgs e) { // Create mini-RFC822 message and translate it to DOS format for spamd. var requestMessage = @"From {SenderEMailAddress} {EMailDateUTC} Received: from {SenderHostName} ({SenderHostAddress}) by {ServerHostName} with HTTP via ZetaSoftware; {EMailDateRFC2822} From: {SenderEMailName} <{ReceiverEMailAddress}> Date: {EMailDateRFC2822} Subject: ZetaSoftware comment To: {ReceiverEMailAddress} {TextToCheck}"; requestMessage = requestMessage.Replace("{SenderEMailName}", e.SenderEMailName); requestMessage = requestMessage.Replace("{SenderEMailAddress}", e.SenderEMailAddress); requestMessage = requestMessage.Replace("{EMailDateUTC}", e.EMailDate.ToUniversalTime().ToString("ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture)); requestMessage = requestMessage.Replace("{SenderHostName}", e.SenderHostName); requestMessage = requestMessage.Replace("{SenderHostAddress}", e.SenderHostAddress); requestMessage = requestMessage.Replace("{ServerHostName}", e.ServerHostName); requestMessage = requestMessage.Replace("{EMailDateRFC2822}", e.EMailDate.ToString("r")); requestMessage = requestMessage.Replace("{ReceiverEMailAddress}", e.ReceiverEMailAddress); requestMessage = requestMessage.Replace("{TextToCheck}", e.TextToCheck); return requestMessage; }
/// <summary> /// Execute the Check command /// </summary> /// <param name="e"></param> /// <returns></returns> public SpamAssassinCheckResult ExecuteCheck(SpamAssassinCheckArgs e) { string[] additionalLines; var result = new SpamAssassinCheckResult(); var responsePacket = SendMessageEx(SpamAssassinCommands.Check, PrepareCheckRequestMessage(e)); CheckThrowResponsePacket(responsePacket); InterpretCheckResponseMessage(responsePacket.Message, out additionalLines, result); return result; }