Spam Filter is automatically checking tracking links is causing an erroneous click-through entries

This has been increasing dramatically over this last year. Email recipient’s Spam Filter are automatically checking tracking links to see if they are malicious and this is causing an erroneous click-through entries in the campaign results.

Is anyone else seeing this increase in their click-through entries?

Is there anything being done to help combat this new phenomenon? Could use the User Agent to determine the client or a page load to verify click.

Any ideas would be greatly appreciated.

Dennis

Hi Dennis. We’re seeing the same: aggressive spam filtering triggering some links and sometimes all the links. There doesn’t seem to be a consistent pattern.

Did you get any movement/ideas on this yet?

Does anyone know if this happens even when the CRM instance (and tracking link) is in the same domain as the email domain?

TIA

TIA,

You are the first to respond to my post. Sorry I haven’t made any progress on this.

The main benefit to using the campaign email system has been lost since this started happen. The email open\viewed stat is useless.

We have been monitoring our server rating and the since the URL scanning started it hasn’t affected our servers status so far.
Dennis

We are using a little trick that might help. Create a tracker that links to a dummy page on your website (or anywhere, really). Then hide that tracker by applying a style with text decoration:none, white colour and font size: 1px

So, if you get a hit on that tracker, it must have been the spam filter triggering the link, right? So your sales team know the other click thru’s, at the same time stamp, are “false positives”.

Not an elegant solution but it works for us.

1 Like

We’ve also noticed this and our marketing folks don’t care for it but we’re more concerned with the opt out link getting followed by the mail server which opts the email address out without the recipient even knowing. We’ve had entire companies opted out all at once due to the email server following the embedded links. I’m looking into implementing an “opt out”/subscription landing page that requires additional user input.

Thanks for the idea Stephen! I added an “undecorated” link on a period character which links to our home page with ?nothuman appended. I just checked the stats and we had 7 immediate hits out of 177 messages sent last night. All hits occurred instantly at reception time which definitely helps us know that the server did it and to ignore the corresponding “opened message” and “followed links” data for them at that time.

mcom,

Were you able to implement an “opt-out”/subscription landing page?

I agree with you that the bigger concern is the opt out link is getting triggered because it is solely based on being clicked. There needs to be a landing page with another step to be removed.

I’m so sorry that I missed your question. Yes, I was able to come up with a workable solution. It’s not the prettiest but it’s been working well. If I ever get the time to clean it up I would like to make the custom unsubscribe page address editable in the GUI. For now here’s what I did:

(I know this works with Suite CRM version 7.10.19.)

1.) Modify “\modules\EmailMan\EmailMan.php” and change the following line to a custom landing page (I thinks it’s around line 1070).


//$removeme_url_template = $this->tracking_url . 'index.php?entryPoint=removeme&identifier=' . $this->getTargetId();
$removeme_url_template = $this->tracking_url . 'unsubscribe.php?identifier=' . $this->getTargetId();

I believe this should really be saved to: \custom\modules\EmailMan\EmailMan.php" to make it upgrade safe. I think you’ll also need to do a quick repair as well. My custom unsubscribe page is located in the root of the crm folder but it could be anywhere. The custom unsubscribe page uses the passed in querystring “identifier” to create the real unsubscribe link. The unsubscribe button on the custom unsubscribe page is disabled by default and gets enabled only when the checkbox is selected which prevents spam engines from inadvertently unsubscribing the email address.

Here’s a generalized version of our unsubscribe page (I removed our site specific text and links. Please excuse the quick and dirty html/css):


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1">
<TITLE>Unsubscribe</TITLE> 
<style type="text/css">
<!--
.style2 {font-size: 13px; font-family:Open Sans, HelveticaNeue, Helvetica Neue, Helvetica, Arial, sans-serif;}
.style3 {font-size: 36px; font-family: "Open Sans", HelveticaNeue, "Helvetica Neue", Helvetica, Arial, sans-serif;}
-->
</style>
<script type="text/javascript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
function MM_changeProp(objId,x,theProp,theValue) { //v9.0
  var obj = null; with (document){ if (getElementById)
  obj = getElementById(objId); }
  if (obj){
    if (theValue == true || theValue == false)
      eval("obj.style."+theProp+"="+theValue);
    else eval("obj.style."+theProp+"='"+theValue+"'");
  }
}
//-->
</script>
</HEAD>
<BODY BGCOLOR="#ffffff">
<p>&nbsp;</p>
<div style="width:440px; margin: 0 auto; border:solid;">
<div style="width:90%; margin: 0 auto; margin:20px;">
<h1 class="style2"><span class="style3">UNSUBSCRIBE</span>
  </h1>
<p><span class="style2">To unsubscribe, please tick the box below and click SUBMIT.</span></p>

<form name="form1" method="post" action="">
  <p class="style2"><input name="unsubscribe" type="checkbox" onchange="document.getElementById('submit_button').disabled = !this.checked;" />
  Unsubscribe me</p>
  <label>
  <input name="submit" type="submit" disabled id="submit_button" style="font-family:Open Sans, HelveticaNeue, Helvetica Neue, Helvetica, Arial, sans-serif; font-weight: 500; outline: none; font-size: 13px; width: auto; border-radius: 2px; box-shadow: inset 0px -1px 0px 0px rgba(0,0,0, 0.2); padding: 9px 11px; border: none !important; background: #8a4e9f; cursor: pointer; margin: 0;" onClick="MM_goToURL('parent','https://<YOURCRMURLHERE>/index.php?entryPoint=removeme&amp;identifier=<?php echo $_GET['identifier'] ?>');return document.MM_returnValue" value="SUBMIT">
  </label>
</form>
</div></div>
</BODY> 
</HTML>

To use this you just create an email campaign template with the default “Opt-out Link?” checked. Load a test target in your campaign and click “Send Test” to verify it’s working.

I just remembered that I also edited the CampaignTracker.php file as well but I don’t think that was really needed. I would need to verify it but if it was needed here is the modified line around line 179:


//$this->message_url .= '/index.php?entryPoint=removeme&identifier={MESSAGE_ID}';
$this->message_url .= '/unsubscribe.php?identifier={MESSAGE_ID}';

Let me know if you run into any trouble and if the second file needed to be modified and I’ll edit this post accordingly.

1 Like

Hi Deno,

After upgrading to 7.11.13 this little trick has stopped working on our instance. Same for you?

EmailMan.php in ‘customs/modules/EmailMan’ is, it seems, being ignored.

Does anyone know if the EmailMan.php code was changed recently?

Thanks

The custom files “…\custom\modules\EmailMan\EmailMan.php” and “…\custom\modules\CampaignTrackers\CampaignTracker.php” are not being used for some reason in the latest versions. I’m using 7.10.25. I did finally get it to work by directly editing the originals in “…\modules” instead. This is not upgrade safe so you’ll need to edit them again if you update.

We have JUST starting seeing this issue and we have been using 7.11.18 for the last seven months. Has anyone found a lasting solution?