GMail Begins Decoding Mailer-Daemon Return Emails

GMail is now decoding Mail Delivery Subsystem <[email protected]> Returned Emails and presenting the message to users in a nice and friendly way.

New Message System:

Gmail Delivery Incomplete
Gmail Delivery Incomplete
Address Not Found - Domain Issue
Address Not Found – Domain Issue
Address Not Found - User Missing
Address Not Found – User Missing
Message Not Delivered
Message Not Delivered

Previously, the system only would reply with cryptic coded messages of what was wrong with the email delivery. These messages are different system-to-system, but some popular responses are listed below:

550-Callout verification failed:
550 550 No such user

550 Requested action failed: User not found

550 5.1.1 : Recipient address rejected: User unknown in relay recipient table

550 5.1.1 Recipient address rejected: {Gateway}

550 relay not permitted!

550 5.1.1 recipient does not exist here.

550 #5.1.0 Address rejected.

550 No such user – psmtp

550 5.1.1 User Unknown

DNS Error: Domain name not found

550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient’s email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 o19si5072179wiv.42 – gsmtp

The recipient server did not accept our requests to connect. Learn more at [ 2606:2800:220:1:248:1893:25c8:1946: timed out] [ timed out]


What should I do?

Address Not Found

In most cases, this return message indicates the user with the end email address does not exist. So, the server did receive your message, but there wasn’t anyone with that name to deliver it to. If there is a DNS problem with the message, then GMail couldn’t deliver it to any mail system. You’ll have to check to ensure you have the proper information after the @ symbol.

Delivery Incomplete

When delivery is incomplete, GMail will retry several more times over the next 2 days. Delivery incomplete generally occurs for 3 reasons:

  1. The address is invalid. Make sure you have the correct information after the @ sign
  2. The server GMail is delivering to is having issues. This is why Gmail is going to retry.
  3. There’s been a blip in the cyberwebs (likely a DNS issue). Google will retry a couple more times and get back to you if they absolutely cannot deliver your message.

Message Not Delivered

After several retry attempts by GMail, if the delivery is still unsuccessful, you will be notified the message was not delivered and GMail will no longer retry.

Adsense and Youtube Payment Schedule

Adsense and YouTube Ad payments typically arrive on the 21st of every month, but their schedule may be slightly adjusted depending on holidays and weekends. Payment date can even vary account to account.

Jan-17           1/22/17
Dec-16 12/21/16
Nov-16 11/21/16
Oct-16 10/20/16
Sep-16 9/21/16
Aug-16 8/21/16
Jul-16 7/21/16
Jun-16 6/21/16
May-16 5/22/16
Apr-16 4/21/16
Mar-16 3/21/16
Feb-16 2/21/16
Jan-16 1/21/16
Dec-15 12/21/15
Nov-15 11/22/15
Oct-15 10/21/15
Sep-15 9/21/15
Aug-15 8/21/15
Jul-15 7/21/15
Jun-15 6/22/15
May-15 5/21/15
Apr-15 4/22/15
Mar-15 3/23/15
Feb-15 2/23/15
Jan-15 1/22/15
Dec-14 12/22/14
Nov-14 11/24/14
Oct-14 10/28/14
Sep-14 9/23/14
Aug-14 8/25/14
Jul-14 7/24/14

These dates reflect the time the payment email was sent from adsense [email protected]. It may take up to several days for your local bank to accept and make the funds available, but most US banks have same-day availability for the funds, depending on what time they arrive in the account and the account standing.

Google AdSense: We recently sent you a payment Email
Google AdSense: We recently sent you a payment Email

2018 Marketing Strategy – How to respond to shifting users.

2017 was full of gain in mobile usage and VR is gaining real traction – 2018 will be no different and your marketing strategy needs to reflect that.

  1. 2018 Virtual Reality

Not only are we now living in a mobile-first world, but VR should now be on your radar for your application. VR Videos and 360º content are proving to be great marketing materials due to the rapid uptake of VR systems. Have you hired a VR specialist? Contracted out VR design work? Now might be a good time to start looking for VR on applicant’s resumes.

2. Mobile First

Moving to mobile first doesn’t just affect mobile devices. People are becoming adjusted to the simple look and feel of mobile devices and expecting the same when they come to your brand’s web-page. Try to make a consistent brand experience between your mobile, desktop and table apps.

Scraping By (securemsg; dosl7_common; window[“bobcmn”]; window[“blobfp”])

If you are here, you’ve probably been frustrated trying to run your web scraping tool on some site and instead of receiving the proper content, you’ve been given a bunch of obscured javascript courtesy of F5 Networks. There have been several people facing this same problem on Stack Overflow, so I thought I would explain exactly what’s going on here and how I solved it for my application.

When the initial GET request is sent to the server on first contact, if no cookies are sent, the server replies with the obscured javascript page. This javascript executes in a way that is meant to be complicated to the user and difficult to reverse engineer, but its purpose is to set a couple of unique cookies and refresh the page once the cookies are set. Upon a second GET or POST request with the proper cookies, the true content of the page is revealed.

To solve this issue, you can either reverse-engineer the javascript code and set the cookies yourself or you can setup a headless browser to emulate the real screen a user would be viewing through.

I followed Christopher Su’s Instructions to get Selenium and Google Chrome running on my AWS Ubuntu instance and was up and running in no time. You could spin a micro instance up with AWS for virtually nothing.

During setup, I did receive the error when compiling chrome “dpkg: dependency problems prevent configuration of google-chrome-stable” but the installation proceeded flawlessly at with the next command.

<html><head><meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta http-equiv="CacheControl" content="no-cache"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="data:;base64,iVBORw0KGgo="/>


 var securemsg;
 var dosl7_common;

window["bobcmn"] = "1111101011101020000000220000000520000000020b0a201e200000096300000000300000000300000006/TSPD/300000008TSPD_101300000005https200000000200000000";

window.ugR=!!window.ugR;try{(function(){try{var JJ,lJ,oJ=1,SJ=1,IJ=1,jJ=1,Jl=1,zl=1;for(var Zl=0;Zl<lJ;++Zl)oJ+=2,SJ+=2,IJ+=2,jJ+=2,Jl+=2,zl+=3;JJ=oJ+SJ+IJ+jJ+Jl+zl;window.ZJ===JJ&&(window.ZJ=++JJ)}catch(Il){window.ZJ=JJ}var jl=!0;function JL(J){J&&(jl=!1,document.cookie="brav=ad");return jl}function zL(){}JL(window[]===zL);JL("function"!==typeof ie9rgb4);JL(/\x3c/.test(function(){return"\x3c"})&!/x3d/.test(function(){return"'x3'+'d';"}));
var jL=window.attachEvent||/mobi/i.test(window["\x6e\x61vi\x67a\x74\x6f\x72"]["\x75\x73e\x72A\x67\x65\x6et"]),lo=+new Date+6E5,Lo,oo,zo=setTimeout,Zo=jL?3E4:6E3;function So(){if(!document.querySelector)return!0;var J=+new Date,O=J>lo;if(O)return JL(!1);O=oo&&Lo+Zo<J;O=JL(O);Lo=J;oo||(oo=!0,zo(function(){oo=!1},1));return O}So();var io=[17795081,27611931586,1558153217];
function Io(J){J="string"===typeof J?J:J.toString(36);var O=window[J];if(!O.toString)return;var s=""+O;window[J]=function(J,s){oo=!1;return O(J,s)};window[J].toString=function(){return s}}for(var jo=0;jo<io.length;++jo)Io(io[jo]);JL(!1!==window.ugR);
(function JO(){if(!So())return;var O=!1;function s(O){for(var Z=0;O--;)Z+=S(document.documentElement,null);return Z}function S(O,Z){var s="vi";Z=Z||new _;return _J(O,function(O){O.setAttribute("data-"+s,Z.Zz());return S(O,Z)},null)}function _(){;;;this.c=null;this.Zz=function(){;if(!isFinite(this.c))return this.reset(),this.Zz();;this.Sj=this.c;this.c=null;return this.Sj};this.reset=function(){;;}}
var I=!1;function Z(O,Z){if(!So())return;var s=document.createElement(O);Z=Z||document.body;Z.appendChild(s);s&&"none");So()}function OJ(Z,s){if(!So())return;s=s||Z;var S="|";function _(O){O=O.split(S);var Z=[];for(var s=0;s<O.length;++s){var I="",LJ=O[s].split(",");for(var OJ=0;OJ<LJ.length;++OJ)I+=LJ[OJ][OJ];Z.push(I)}return Z}var OJ=0,_J="datalist,details,embed,figure,hrimg,strong,article,formaddress|audio,blockquote,area,source,input|canvas,form,link,tbase,option,details,article";
_J.split(S);_J=_(_J);_J=new RegExp(_J.join(S),"g");while(_J.exec(Z))_J=new RegExp((""+new Date)[8],"g"),O&&(I=So()),++OJ;return So()?s(OJ&&1):void 0}function _J(O,s,S){if(!So())return;(S=S||I)&&Z("div",O);O=O.children;var _=0;for(var OJ in O){S=O[OJ];try{S instanceof HTMLElement&&(s(S),++_)}catch(_J){}}return So()?_:void 0}OJ(JO,s);So()})();var lO=96;window.Jo={Lo:"08b88de4c7017800793eb49f2553b27bf271379cf4fd0f9c8f1b2a72b740b891cadcffe4557e5800ca9c278000864e45a154bde7be35c3f18fce5440734054f7ca1559c993f413201c3c672014497b3c5baba38fea707379707c7483d5d671a9136c2520b9f7d82aaa7e636b54f030b51498fc7660a6e7a766aa914cb95cb740"};function l(J){return 514>J}
function L(J){var O=arguments.length,s=[];for(var S=1;S<O;++S)s.push(arguments[S]-J);return String.fromCharCode.apply(String,s)}function z(J,O){J+=O;return J.toString(36)}(function oO(O){return O?0:oO(O)*oO(O)})(So());})();}catch(x){document.cookie='brav=oex'+x;}finally{ie9rgb4=void(0);};function ie9rgb4(a,b){return a>>b>>0};



<script type="text/javascript" src="/TSPD/08e428ff3bab2000194e3c2ae57d3b01a1d989eaaee49d1af8b17d27b43c392a782fc5c62daf4447?type=8"></script>


 var securemsg;
 var dosl7_common;

window["blobfp"] = "11111111102000003e829f42915a30000004a9696b997bf2ee01b00586fceca00001c2080748f36141180ef2668f9f0a8762fd6198ead61300000020";


<noscript>Please enable JavaScript to view the page content.</noscript>
Obfuscated Javascript Block Page Code
Obfuscated Javascript Block Page Code

How the Google Pixel prevents Year 2038 Vulnerabilities

The year 2038 problem is a Y2K bug of the programming world. On January 19th of 2038, the 32 bit unix timestamp will be unable to count forward any further and will instead interpret future time to take place starting in 1901 (I guess time travel will be discovered in 2038 for many devices). year_2038_problem

As reported with the Nexus 7 devices, the Google pixel has a similar way of postponing issues brought about with this bug – prevent that time from ever existing.


So what happens at 11:59 PM December 31st of 2037?  Time continues on. A minute later my phone displayed January 1, 2038. Unfortunately, I’m not going to keep my phone’s datetime settings out of whack for 3 weeks to find out what happens. Considering the Pixel runs on 64 bit architecture, likely the only issues would be with apps still using 32 bit unix time.


C=#C=`q0`q0`q0`q0`q0` – Odd Characters After Exiting VIM

After exiting VIM and receiving a slight delay before getting back to the screen from vim (likely due to packet loss on the current network), I found a strange set of characters pre-filled in the command line.


Checking my history didn’t show any executed commands and I didn’t type anything between exiting vim with “[esc]:x”. Curious. Anyone else see this set of characters? Could it be part of a packet from some connection re-negotiation or something that was re-sent but misinterpreted outside of vim?

Verzion Message+ Blank Messages FIXED!

If you are having problems with Verizon Message+ on OS X Sierra, read on. There’s a simple way to fix disappearing, blank, and missing messages on Verizon Message+ Desktop messaging app.

Update: 27 January 2017

The Message+ App for OSX has been updated to version 2.0.2 with “Bug Fixes & stability improvements”. Since this update, I have had no issues with disappearing messages. The app seems to be faster and more stable overall as well, but some users still experience intermittant high cpu usage.

Instructions below:

  1. Click on the Message+ menu in the top left and navigate to Preferences. How you get here might be different for PC and OSX. This is a screenshot of the Mac OS Menu.message-preferences
  2. Once you have the preference menu open, modify the font size on the very bottom. I adjusted my font size to small and suddenly all of the messages returned. I am now able to send and receive messages without any blank messages appearing. message-plus-adjust-font-size

Many users have reported disappearing messages in macOS 10.12 Sierra and macOS  10.11 El Capitan, but this should fix the issue for both. You may also be able to adjust your font size to any size but the default in order to get the message app to perform normally, but I have tested and confirmed the smallest font size solves the problem. Unfortunately, you may need to re-adjust the font size periodically to keep the problem from occurring, but this is a good temporary fix until Verizon addresses the problem.

As a bonus, this fix also reduces Message+ CPU Usage to normal levels:

Verizon Message+ CPU Usage
Verizon Message+ CPU Usage

Seeds of Revolution – Dday One

Seeds of Revolution is a song on Dday One’s album Loop Explosions also featuring Long Arm.

This nation is in a state of turmoil unparalleled in our district poverty amidst wealth widespread racism and bewilderment over a strange war…

…Part of the seeds of the revolution…

Any clue where the audio is sampled from? Questions, ideas, eras in the comments!

Listen Below: