RSS
 

Archive for the ‘Web Services’ Category

The problem with the non delivered email part 3

14 Jul

If you didn’t read the first part of this post then you might want to start reading from here. This post is the wrap-up.

Previously: In order to eliminate Microsoft Exchange server idiosyncracies I ran a pure SMTP (client) to SMTP (server) test with the same (bad) results that Stefan had reported. This test although it failed, did narrow down the problem, indicating me that the error most likely was not within the Microsoft Exchange server and most likely originated at the client site. Further investigation also showed that the client had multiple mail servers defined, not all of which were actually working.Email symbol

Back to the client

I spent another day or two trying to contact the administrators at the bigcmailsrvr site to go over my findings and to work out a plan of action to fix the problem. When I told the email administrator about the non-working mail server entry in their configuration, their response was not what I expected. The administrator said that the dummy (non-responding) email server entry was intentional and that it was recommended that they configure it that way by a consultant. The rationale was that spammers go after the ‘highest’ pref server first,  perhaps assuming that the highest numbered (and therefore lowest priority)  server is probably used for internal organization messaging  functions and email coming into the network via that server would be less likely to be filtered or blocked. The admin said that by having that server as a dummy entry it knocked out 80 percent of their incoming spam.

I’m not an email expert although I have worked with SMTP mail on and off for several years and I am fairly comfortable with the protocol, however this was the first time that I had heard about using the mail server pref value in this way. The basic process is something like the following:

  • The mail server wants to send an email to an outside (i.e non-local) recipient and makes a DNS query to find out where to connect.
  • The DNS server returns one or more MX records to the mail server, where each MX record contains the Fully Qualified Domain Name (FQDN) for a mail server (note: the MX record data should not contain an IP address).
  • Each MX record returned has a pref value. The MX record with the lowest pref value is the one that the sending mail server is supposed to use to make the connection. The  next higher pref value servers are only selected if the chosen recipient mail server does not respond.

I pointed out to the administrator that he had just told me a few days earlier that he did not do any filtering or blocking of email and that this appeared to be a pretty big email filter to me.  I eventually got the administrator to remove the dummy mail server for a quick test and immediately all of the mail worked. The administrator then put the configuration back with the dummy mail server intact (and our mail connection to them effectively blocked).

After explaining the situation to Stefan and to Tony, the CFO. Tony managed to get his counterpart at the client site to ‘persuade’ his  email administrators to get the connection working.  Statistics can be so overrated they may have stopped 80 percent of spam from coming in with their dummy mail server configuration but I would bet that some of that non-arriving 80 percent spam mail was really legitimate mail that was now being blocked and whose senders did not have the time (or maybe the ability) to determine why the mail wasn’t being delivered.

I was going to call Microsoft on this anyway, to report the problem as an apparent bug in Exchange (after all our Exchange server should have been using the Mail server with the lowest pref value not the highest).  At the end of the day though I did not call them because I was not convinced that the bigcmailsrvr site did not have something else mis-configured and contributing to the problem because my email test client which did not use Exchange, also failed to deliver the test message.

The immediate problem solved, I left it up to the “C” level execs to work out a mutual business arrangement as to whether the permanent solution should be to keep the current configuration, set-up some form of white-list or try something else.

 
Comments Off

Posted in Just Business, Technology, Web Services

 

The problem with the non delivered email part 2

06 Jul

Sorry for the delay in getting back to this assignment note – if you didn’t read the first part you can read it here.

Previously: In order to eliminate Microsoft Exchange server idiosyncracies I ran a pure SMTP (client) to SMTP (server) test with the same (bad) results that Stefan had reported. This test although it failed, did narrow down the problem, indicating that the error, most likely,  was not within the Microsoft Exchange server and originated at the client site.

Check to make sure that our domain is not blacklisted.

Email symbolI went to http://www.anti-abuse.org/multi-rbl-check/ and ran a quick check on our company domain name and the external (internet) email server name both of which came up okay. So the company is not on a general blacklist.  I also checked the AT&T blacklist site in case the client used AT&T as their ISP – we were also clean there. Stefan gave me a contact number at the client site which got me to their help-desk. After explaining the situation a couple of times to the folks on the help-desk who promised to open a ticket. I finally got a telephone call back two hours later, from their email administrator. The administrator insisted that they did NOT have any filtering rules or blocks setup against our domain and insisted that they did not subscribe to any Blacklist services that may for some reason have our domain (or IP address) listed.  I faxed the admin the output of my tests including the test showing that the port was being closed by a server/firewall/router on their network as soon as we tried to establish a connection. I asked the admin to look into their configuration anyway, perhaps check with their network admins and to get back to me, meanwhile I went back to the drawing board.

Check for DNS, MX record, or mail server configuration problems

I went over to http://www.mxtoolbox.com and ran checks against OUR mail server and MX records verifying that everything on our side looked okay. I then ran the  same tests on the client mail server, mail.bigcmailsrvr.com to verify that there are no obvious problems (from an email client perspective) on their end.

220 mail.mylocalexchangeserver.com Microsoft ESMTP MAIL Service ready at Mon, 3 May 2010 08:36:05 -0400
Not an open relay.
0 seconds – Good on Connection time
5.242 seconds – Warning on Transaction time
OK – 7x.2xx.167.212 resolves to mail.mylocalexchangeserver.com
OK – Reverse DNS matches SMTP Banner
Session Transcript:

HELO please-read-policy.mxtoolbox.com
250 mail.mylocalexchangeserver.com Hello [64.20.227.133] [62 ms]
MAIL FROM: <supertool@mxtoolbox.com>
250 2.1.0 Sender OK [62 ms]
RCPT TO: <test@example.com>
550 5.7.1 Unable to relay [5054 ms]
QUIT
221 2.0.0 Service closing transmission channel [62 ms]

Mxtoolbox did not indicate any problems for either our domain or their domain.
Read the rest of this entry »

 
Comments Off

Posted in Just Business, Technology, Web Services

 

The problem with the non-delivered email

07 Jun

When the email doesn’t go through

How email travels from your desktop in Brooklyn to your friend’s iPad in Toronto or even to your co-worker’s Email symbollaptop, two cubicles away is not something that you probably spend too much time thinking about – unless you happen to be the system administrator or your in-box throws out a ‘undeliverable mail’  message.

I was wearing the ‘sysadmin’ hat for this particular company assignment and ended up learning something new while resolving an unusual undeliverable email problem.

……As is usual in these posts, the name of the various parties including the company names have been changed to protect guilty and innocent alike.

Read the rest of this entry »

 
Comments Off

Posted in Technology, Web Services

 

HTML5 giving birth by committee

17 May

HTML5 is (almost) here and the warring camps are lined up for battle. Google, possibly one of the first players out of the gate with its Google Wave application service has been demonstrating some of the improved HTML5 features in Wave like dragging and dropping of photos.  The photo effect did require a helper application, Google gears, because the HTML5 support is not quite ready yet.

Next we have the iPad, where Steve Jobs is pushing an Apple ‘standards’ based HTML5 approach over Flash which he won’t support on anything outside of Macs.  Unfortunately, in the real world, HTML5 has not yet specified a codec standard for the HTML5 video support and while Jobs and Microsoft (strange days indeed) are backing H.264, Google and Mozilla are into OGG Theora, while Adobe and lots of satisfied users of course want flash/SWF to remain as an option (Nasa blog: Whywe went with Flash) and there are probably another half – dozen video codec standard contenders out there .

This kind of “survival of the fittest” technology contest happens time and time again. XHTML, an XML variant was slated at one point to become the next HTML version. The attempt to bring XML style structure to HTML was both well-intentioned and strongly positioned to become HTML version 5.  XHTML  just failed to gain widespread support by the mainstream browsers or by anyone outside of the development and standards communities. XML itself, introduced as a means to simplify the complex SGML markup standard has itself, ironically, become far more convoluted and and complex than SGML ever was.

So, for a brief moment, HTML5 does have a very promising future. It can, as Google Wave has shown, break the barriers between the traditional desktop based application, web application and mobile computing – a process which, has been underway for maybe 10 years now.

I really hope that HTML5 doesn’t end up institutionalized like XML or balkanized by warring factions like Apple and Adobe because HTML5 has been in labor for about five years with no birth, which is kind of what happens when delivery is by committee.

Related Articles:

 

How many Top Level Domains are there?

03 May

The Icann blog answered that question back in 2009, far more than I realized. I wonder what the count is now?

I got started wondering about how many TLD’s existed because of the DNS SEC changes that begin tomorrow when they begin sending extended DNSSEC signature data in response to DNS queries – I’ve been told that as long as mn DNS resolver is not setting the DO (DNSSEC OK) bit in the request then I should be okay which is good because my initial tests indicate that my configuration is not up to handling the extended headers. Anyway, if anyone is curious enough to want to run the RIPE analysis for themselves you can get it here http://labs.ripe.net/content/testing-yo … ize-issues and if you want more technical details on the “DO” (DNSSEC OK) bit settings then you can read about it here: http://www.ietf.org/rfc/rfc3225.txt

 
 

Google's changed the game – again!

16 Apr

Google just unveiled a strategy for universal printing over on its chromium blog. The technology ties in to the chrome browser but, it will go beyond that to (in Google’s words) allow printing from any web app:

Infographic from Google Chromium blog: http://blog.chromium.org/2010/04/new-approach-to-printing.html

“...design a printing experience that would enable web apps to give users the full printing capabilities that native apps have today. Using the one component all major devices and operating systems have in common– access to the cloud– today we’re introducing some preliminary designs for a project called Google Cloud Print, a service that enables any application (web, desktop, or mobile) on any device to print to any printer.Read the rest of this entry »

 
Comments Off

Posted in Just Business, Technology, Web Services

 

OOMA call log statistics with Ruby (Part 2)

23 Mar

In my last article (part 1) I described the OOMA Logger application that I had running on my development machine, and I promised to make it available by deploying it to Heroku which is a cool service for deploying web based Ruby apps.  The application is now live at http://oomalogger.heroku.com (nice name right!)

First off, I ran in to a couple of unforeseen problems like the fact that heroku apps are for all intents and purposes read-only (which meant for example, that I had to figure out the Nokogiri parsing problem and not use the file-system work-around hack that I had come up with).

Read the rest of this entry »

 
Comments Off

Posted in Developer, Ruby Notes, Web Services

 

OOMA call log statistics with Ruby – Tech Notes

22 Mar

One of the initial problems that come up with Ruby web application development is where do you host it? A lot of the general web-hosting sources don’t support Ruby unless you are on dedicated servers and roll-your-own environment. Heroku is an amazing service for Ruby developers that makes it drop-dead simple to deploy Heroku apps.

The “oomalogger” application turned out to be both more and less complex than I originally thought. Less complex, because I didn’t need a database after all and more complex because of unforeseen things like Heroku applications being essentially read-only and my needing to work around those issues. T here is a tmp and log directory for temporary and log files but in general and for scalability the Heroku app should not be trying to write files to the file system. Read only files are okay as long as the total app size including the static files is less than 50mb and preferably less than 20mb.

The work-around for the Nokogiri file parsing problem – the Mechanize returned page could not be parsed by Nokogiri was as follows: if the Mechanize doument that was returned is in object ‘page’ then you have to parse the page object with the ‘body’ method (i.e page.body) instead of attempting to parse the entire object ‘page’.

Deploying to Heroku essentially followed these steps:

The config.ru file must contain a require statement for sinatra; the name of the application to be run and the statement to actually run the application for oomalogger this looks like:

1. Create a config.ru file

This is the Rack configuration file, which is actually just another Ruby script.

1 require 'sinatra'
2 require 'oomalogger'
3 run Sinatra.application

This tells Rack to include the Sinatra and the  oomalogger, then run the Sinatra application.

2. Initialize an empty Git repository in the snip folder

1 $ cd workspacerubyprogramsoomalogger
2 --> $ git init
3 Initialized empty Git repository in .git/
4 --> $ git add .
5 --> $ git commit -m 'initial import'
6 Created initial commit 5581d23: initial import
7 2 files changed, 52 insertions(+), 0 deletions(-)
8 create mode 100644 config.ru
9 create mode 100644 snip.rb

This just creates and initializes an empty git repository on your computer.

4. Create the Heroku application

1 --> $ heroku create oomalogger
2 Created http://oomalogger.heroku.com/ | git@heroku.com:oomalogger.git
3 Git remote heroku added

5. Push your code to Heroku

01 --> $ git push heroku master
02 Counting objects: 4, done.
03 Compressing objects: 100% (4/4), done.
04 Writing objects: 100% (4/4), 999 bytes, done.
05 Total 4 (delta 0), reused 0 (delta 0)
06 -----> Heroku receiving push
07 -----> Rack app detected
08 Compiled slug size is 1.9M
09 -----> Launching....... done
10 App deployed to Heroku
11 To git@heroku.com:oomalogger.git
12 * [new branch]      master -> master

Notice that this pushes your code and loads your application into deployment.

You can now go to your application on Heroku and you should be able to see it.

 
Comments Off

Posted in Developer, Ruby Notes, Web Services

 

OOMA call log statistics with Ruby (Part 1)

18 Mar
ooma call log service snapshot image

Output from OOMA call log service

So far, I have been using OOMA (premier) for a little more than three months which means, based on my prior AT&T bills that it has just about paid for itself. It also means that every month from now on without a phone bill is money in my pocket free-is-good.

I’ve been busy over the last few days on a small Ruby programming project. I’m somewhat new to Ruby, but not to programming. I was looking for a project to help me bring some of the Ruby concepts together – while there are some great Ruby tutorials and books available you can’t really learn to program in a language until you actually start to write code. Read the rest of this entry »

 
Comments Off

Posted in Developer, Ruby Notes, Technology, Web Services

 

OOMA and the internet connection state.

02 Mar

Having problems with keeping your OOMA phone system connected? Before you blame OOMA, the problem could lie with your ISP. Fortunately, the fix is relatively easy.

ooma hube and scout

OOMA Hub and scout

The OOMA hub and scout units have a tab indicator that show at a glance when the device is working correctly. A blue tab indicates that the box is working and has a good internet connection.  A red  tab indicates there is no internet connection (and you cannot make or receive phone calls through the OOMA).

After about a month using the OOMA, I began to notice OOMA connectivity issues that I thought might indicate a problem with the unit. I have about a half dozen always-on devices running on the network. So when OOMA started showing no internet connection but everything else (most but not all of the time) seemed to be humming along just fine I blamed the OOMA. After one frustrating saturday evening when the OOMA connection would not stay connected for more than about 30 minutes at a time, I turned to my firewall logs to try and determine what exactly was going on. .

The logs showed that a lot of DNS requests (UDP port 53) were failing or taking a really long time (latency) to complete. Compared to the Popcorn hour media center, the XBOX, TIVO and other network connected devices, the OOMA was sensitive to DNS errors and was making a lot (comparatively) of external requests. Each request to the OOMA server would first go to the ISP’s DNS server to resolve the name into an IP address and when that request was not resolved in a timely fashion, OOMA would apparently think that the internet connectivity was lost and the tab would turn red and . Meanwhile, other devices on the network would not notice anything or would perhaps slow down but not indicate any connectivity issues.

Once I figured this out, I looked at my network configuration and made some changes. As I said, I have my own firewall behind the Verizon DSL modem (Westell 6100), which can also act as a firewall. When I first setup the Verizon DSL I had turned off all of its firewall features so that it would not filter or block any services that my firewall had already permitted. I did let the Westell unit assign the IP address and DNS server to use to my firewall (which in turn propagates that DNS server to the LAN).
The solution to fix the problem was relatively easy, instead of using the default Verizon DNS settings I assigned my own DNS server, using the OpenDNS service. I had used OpenDNS on individual computers on the LAN in the past but had not made it the default choice at the firewall. I made the change, restarted the Westell DSL modem as well as the firewall and my wireless router (I wanted to ensure that everything came up fresh). It was like I had just received a brand new OOMA unit! Instead of seeing that red tab show up anywhere from one to five or six times a day I rarely see it anymore and when I do it usually corrects itself before I can get over to the box to take a look.

So, if you are having performance issues with your OOMA try changing your DNS server I recommend OpenDNS as a free and very stable choice.