13 Jun 2011

Ways to deal with litigious people

1 Comment Uncategorized

Recently I just got out of a contract in the beginning of June, that unfortunately I stayed at way too long in. That is another story.  But, I have nothing bad to say about the company because the work was interesting, just management at the company had different views of the contract between the two of us. The management wanted an employee and I always maintained that I wanted to stay an independent contractor.

When I left the job on Thursday, June 2nd, I received a handshake on the way out and thought everything was going to end like every other job I have left. In that we maintain a friendly but separate relationship and I secretly root in the background for the companies success moving forward.  Same way I did when I was a contractor for the company.

I continue to this day to do this for a couple companies that I loved working at and that I have stayed in constant contact with. One company that comes to mind and that I loved work for is Voveo.

However I am getting off point from this article, and by the title of this article you can pretty much guess what happened after I left.

But before I go into the meat of this article, I want to say that I have nothing bad to say about SocketLabs, they have a great product, and I enjoyed working there. I even received contacts from a couple of the employees stating how good of a job I did, and that the system as it stands now wouldn’t be of the same high quality if I hadn’t worked on it for the prior 2 years.

How it all started…

About a week after submitting my final invoice, and I hadn’t had any contact with the companies management in the mean time. It all started when I received the following letter from their (SocketLabs) lawyer.

pdf The PDF I was sent by the lawyer.

Review at your leisure, see if you come to the same conclusions I laid out below.

My conclusions about the agreement

After reviewing this letter I came to the following conclusions:

  • The original contract was between SocketLabs, Inc and ManagedFusion, LLC (my company I use for consulting), not me (Nick Berard) personally. I do not sign anything with my name personally because I will not open my family up to lawsuits, which is the main reason I do business behind a corporation.
  • Since, the first contact I receive from the company is a letter from their lawyer, I decided if I was to so sign this contract, I would require the full payment up front and require that the contract not go into effect until the last penny of the payment for this agreement was received.
  • If anybody is familiar with the job reference system in the United States, you know that Section 6 is pretty much a slap in the face if nothing more is said about my time at SocketLabs, and it is understood industry wide that stating dates and supervisor and nothing else when ask for a reference is tantamount to a negative reference and thus violates section 8(a). I know this was all the lawyers doing and not the management at SocketLabs, but still those two sections are in total contradiction of each other.
  • Also you need to be familiar with the rules from the United States’ IRS (Internal Revenue Service) of what constitutes the differences between a independent contractor and an employee to see that Section 7 is an abomination of legal jargon basically saying I was an employee of SocketLabs, which is so far from the truth, that if I were to sign this agreement both I and SocketLabs would be required to pay back taxes to the IRS and face a potential audits and fines.

Dealing with the agreement

I have posted the agreement so that you can use it as a reference for when you are in the same situation.  Just to be clear I don’t plan on signing the document, because it offers no protection for me or my family, and it only offers a small monetary gain up front, hardly worth opening my family up to lawsuits from company management that already seems to be very litigious.

So when you are in the same situation, you have the following ways to deal with it:

  1. Sign the document and hope for the best.
  2. Negotiate for terms that work for both parties.
  3. Tell them you would rather move on and not sign an more agreements.
  4. Just ignore the problem, which is essentially the same as #3 except you don’t engage in any form of contact.
  5. Or hire a lawyer and let the lawyers has everything out.

Just to be clear I am not a lawyer and don’t play on in real life or on TV, so take what I say with a  grain of salt and contact a lawyer who will have your best interests in mind given your circumstances.

I opted for option #3, since there is never a reason to sign a document after the fact unless there is a huge upside for you. And no such upside was presented to me.

Have you ever dealt with a similar situation? What methods have you used to deal with the problem?

There is nothing confidential in this agreement, and this has been posted to my blog because I enjoy having full disclosure with my blog readers. It is not meant to embarrass anybody, because if they were embarrassed about sending this letter through their lawyer they probably shouldn’t have set it. That is my take on this.

25 Oct 2010

How To: Send SMTP Email Through GoDaddy

2 Comments Uncategorized

Note

I cannot endorse the SocketLabs service anymore. Everything below works with any SMTP service. If you would like great alternatives please give the people at:

  • Postmark a try for transaction email
  • or if you need to send bulk email please try out SendGrid

So you have a GoDaddy server and you want to send email through your newly acquired SMTP Relay. Well “you can’t” is probably what you are going to find if you do some poking around Google.

If you poke around a little more you will probably find GoDaddy’s official solution is to use their internal mail relay.  This is not ideal, because of arbitrary barriers they have set, such as this one:

Our dedicated servers have an outbound email limit of 1000 per day. If you need to send more than 1000 emails per day, please call Customer Support or open a support ticket to request a higher limit.

I shouldn’t have to justify my use cases and business to a company that I am paying over $200 a month for a dedicated server.

But all is not lost, and I could still use the free email relay I created in my previous post. As I was searching around the SocketLabs support site I discovered the solution I was looking for and found that alternative ports have been opened to get past the port 25 filtering that a lot of residential cable companies and internet service providers force upon you.  I found this in the SocketLabs support system:

Using SocketLabs Email On-Demand With a Residential Internet Cable Service and Alternate SMTP Ports

If you are going to be sending email through your residential cable internet service you should be aware that most of these ISPs will block access to third party SMTP servers through the default port 25. In this case you can use the alternative port of 2525 when configuring your SMTP connection to get around this problem.

This seemed to be exactly what I was looking for.

To start, we need to pick up where we left off in my previous smart host blog post, we need to configure the outgoing port that our smart host will connect to.  By doing this we accomplish the exact same goal as when I first setout of not having to change a single thing in your already functioning and setup applications.  To configuration the alternative port, follow these 4 steps:

1.  In IIS Manager, right-click the SMTP virtual server, and then click Properties.

2. Click the Delivery tab, and click Outbound connections.

3. In the Outbound Connections dialog, set the TCP port to “2525” as picture below

outbound-connections

4.  Click OK and then then you are done.

To verify that it was working, I sent a test email to one of my email addresses and received an email that contained both receiving headers.  One header from the localhost and then one from my SocketLabs relay server, as was originally shown in my previous post.  Here are the receiving headers from the test email I sent using the alternative port:

Received: from server ([69.59.171.172]) by mxsp2.email-od.com with ESMTP; Mon, 25 Oct 2010 21:44:09 -0400
Received: from server ([127.0.0.1]) by 26294-68734 with Microsoft SMTPSVC(7.5.7600.16601); Mon, 25 Oct 2010 18:44:10 -0700
Subject: Web Site Information Request
From: "Managed Fusion No Reply" noreply@managedfusion.com

I first discovered this setback with GoDaddy, as I was testing my smart host setup on a GoDaddy dedicated server.  This was sort of a pain in the you know what, but it is understandable and appreciated that they go through basic steps to stop spammers on their infrastructure. Luckily for me SocketLabs Email On-Demand has come through with a solution for their customers.

01 Oct 2010

Easy Mail Delivery with a SMTP Smart Host

6 Comments Uncategorized

Note

I cannot endorse the SocketLabs service anymore. Everything below works with any SMTP service. If you would like great alternatives please give the people at:

  • Postmark a try for transaction email
  • or if you need to send bulk email please try out SendGrid

On my server I run the typical assortment of applications that is on any true developers servers. I have PHP for my blog, ASP.NET MVC for my side projects, and a couple scheduled tasks that include backups and other things. All of these applications and tasks have different places to configure their default SMTP relay, and it was really getting out of hand, but I had gotten use to changing them all when the need arose, and usually I just defaulted them to the IIS localhost, because it was easy.

I knew the downfalls of using the default localhost and the potential mail delivery problems if I didn’t properly set the DomainKey, DKIM, SPF, SenderID, Reverse PTR, and blah blah blah. But it wasn’t really worth the hassle for me to properly set all this, because I can count the number of emails sent from my server on one hand each day. And a 4 out of 5 times they were administrative emails sent to my Gmail account. But given all that it is still no excuse for poor email hygiene.

Recently I learned about an unknown “feature”, at least to me, called smart host in the settings of the IIS localhost SMTP server. Which seems like it would solve all my problems, with very little effort, when I combined it with a Cloud Based High Deliverability SMTP Relay. This combination of the Cloud and a Smart Host would provide me the following:

  1. Keep all my applications pointing at the localhost SMTP built in to IIS
  2. Provide a higher deliverability
  3. Properly sign my emails with DKIM and SPF
  4. And setup a Reverse PTR for higher delivery to services that require it.
  5. And give me the wonderful benefit of analytics for my emails sent each day, analytics is like candy to developers, at least for me. Nothing better than a graph in my opinion

Getting Started

First things first you need to sign up for an SMTP Relay, I choose the Free SMTP Relay provided by SocketLabs Email On-Demand which is a High Deliverability Cloud-Based SMTP Relay to get the job done. Signup was easy, and they had my cloud SMTP server verified and provisioned in less than 24 hours.

Next make sure SMTP is installed on your local Windows box. I am not going to go through this part because it varies greatly between Windows 2003 and Windows 2008 R2. But if you really need help try this site.

Now lets setup the smart host using our SMTP Relay provided by SocketLabs. To set up a smart host:

1. In IIS Manager, right-click the SMTP virtual server, and then click Properties.

Untitled

2. Click the Delivery tab, and click Advanced.

3. In the Smart host box, type the name of the smart host server. In this case it is “smtp1000.socketlabs-od.com” You can type a string to represent a name or enter an IP address.

Untitled

4. Click OK and then click Outbound Security on the Delivery tab. And enter in your authentication credentials sent to you by SocketLabs.

Untitled

5. We are done

Using Your Smart Host

As I indicated before, this was an easy transition, because I didn’t have to change anything in my applications or tasks. They still all point to localhost, but now instead of localhost trying to deliver the mail, it just relays the SMTP request to my Free SocketLabs account.

For the geeks like me who like a little verification that all this is working as it should be, here is the email header from a comment email I received from this blog:

DKIM-Signature: v=1; a=rsa-sha1; d=socketlabs-od.com;i=@socketlabs-od.com;s=key2443;
    c=relaxed/relaxed; q=dns/txt; t=1285951803; x=1288543803;
    h=subject:to:date:from:message-id:mime-version:content-transfer-encoding:content-type;
    bh=NGN3BWusyQrG7TOAXx0uG/B+BoM=;
    b=sI9CfJrL7qM32wEtzfjxPIkZqsxeTRp7FLRZ1n5lLd1rVgDJzMlNyVhrE8BikBih7lxrKjm3HHZOFLVzQNeVmay4KuUyge/xv1wLxTnTmDUA5jbqt5Mh9vStc4cd4x6zz3zEJTqqLbzgtFN9C6LKiSUBpb3g4m/tqwk62OlBU94=
Received: from server ([69.59.171.172]) by mxsp2.email-od.com with ESMTP; Fri, 1 Oct 2010 12:50:02 -0400
Received: from server ([127.0.0.1]) by server with Microsoft SMTPSVC(7.5.7600.16385); Fri, 1 Oct 2010 09:49:00 -0700
Subject: [Nick Berardi's Coder Journal] Please moderate: "You're Invited To Code Camp 2010.2"
To: nick@coderjournal.com
Date: Fri, 1 Oct 2010 16:49:00 +0000
Return-Path: wordpress@coderjournal.com
From: WordPress <wordpress@coderjournal.com>

As you can see on line 7 the message was sent to my local host server, and then on line 6 relayed to the SocketLabs Email On-Demand Server.

And here is my favorite part, the emails show up on the graph.

Untitled

Note: If you have never setup a localhost SMTP server on Windows before. Make sure that you grant “127.0.0.1” or “localhost” the ability to relay mail through the localhost server. Sounds odd, but this is a necessary step in my experience. To do this click the Access tab, click the Relay button, click the Add button, and then enter the IP address “127.0.0.1” in to the IP Address text box, and click OK. Then just keep clicking OK to exit out of the properties screen.

Update (2010-10-25): If you find that your SMTP Relay is being blocked by your residential service provider or GoDaddy please read my updated post on how you can get around this using alternative outbound ports in the smart host.