The Dovetail Blog

Setting up a SMTP Server on an Azure Virtual Machine

12/01/2017 UPDATE: It is Against the Azure Terms of Service to use a VM to send out emails. Microsoft recommends you use a third party email sender.

Today I had an interesting challenge. It was to set up a SMTP server on an Azure virtual machine for a client who were moving to the cloud.

As we all know Microsoft likes to lock down or change certain settings on us when using their cloud services so hopefully this guide will help someone when setting up their SMTP on an Azure VM.

Here is the steps I needed to do in order to get SMTP server working on the Azure virtual machine.

  1. Install SMTP via Server Manager > Manage > Add Roles and Features
  2. Click Next until you reach "Server Roles"
  3. Tick Web server
  4. Click Next
  5. Tick SMTP
  6. After Installation Open IIS 6.0 Manager
  7. Right Click on SMTP Virtual Server and click properties
  8. Pick the VMs local IP address (Should be only one in drop down)
  9. Click Access Tab
  10. In the "Connection" and "Relay" screens select "All Except the list below"
  11. undefined
  12. Click Apply and OK
  13. Go to Services
  14. Right Click "Simple Mail Transfer Protocol"
  15. undefined
  16. Set the startup type to Automatic
  17. Click Apply
  18. Stop and Start the Service
  19. Click OK
  20. In your Web configs ensure to change any SMTP Server values from "localhost" to the name of the Azure VM e.g. "DovetailExampleVMName" This is the name you used when you first created the Virtual Machine on the Azure portal.
  21. Test your SMTP server

Hope this helps some people who are having trouble porting some websites over to an Azure virtual machine that used SMTP on their server. 

Rube Goldberg on the keyboard

Occasional Dovetailer Garrett Heaver recently asked what the lights are for on my monitor stand. This post is to answer him.

I annoy myself by accidentally hitting the caps lock key so I normally remove that key from my keyboards. (I think I may have actually learned that trick from Garrett). Recently I happened to have an Arduino Trinket lying around and some switches so I came up with a rather ridiculous replacement :)


There is a little video here on Youtube.


SSL Certificates, .NET Users MVC & The Return

SSL Certificates

I love SSL certs the green banner they give give a nice since of security when shopping online. But this week I was installing an SSL certificate and I encountered a very strange error "CertEnroll::CX509Enrollment::p_InstallResponse: ASN1 bad tag value met." 

The error occurred when I tried to install the certificate via IIS.

To fix the problem I had to do the following:

  1. Click Start, click Run, type mmc.exe, and then click OK.
  2. Click File, click Add/Remove Span-ins.
  3. Select Certificates, and click Add, and then click OK.
  4. Select Computer account, and click Next, and then click Finish.
  5. Click OK.
  6. Expand Certificates (Local Computer), and Personal, and then Certificates.
  7. Right-click the certificate, and then click Properties.
  8. Edit the Friendly name field


After I finally got the certificate installed I applied the it to the IIS binding for the site and we got the green banner on the site when we visited the secure side of the site.

.NET Membership with MVC & Auto Scripting

Kit this week has been building a Membership implementation for a client. He was trying to do it via code first approach were the database would be built later on.

I thought there was no automatic script building for SQL server. However buried deep inside .NET and not well documented Kit found how to get the database on the SQL server to be automatically populated specificly for Membership/Identity. All one had to do was send in the connection string and when you registered your first user the tables would be created on your SQL database. This will make creating Membership entities a lot easier int he future. Nice on Kit.

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
       public ApplicationDbContext()
           : base("ConnectionString.SQL Server (SqlClient)", throwIfV1Schema: false)
       public static ApplicationDbContext Create()
           return new ApplicationDbContext();

The Return of Gregory

Greg our intern for 7 months last year has returned to work full time with Dovetail. We are delighted to welcome him back. Hopefully he will have a blog post for you this month. He has been working with Fabrizio on the IKEA project.

End Of May Roundup

It has once again been a busy month for Dovetail. With development work, meetings and trips to Denmark we are looking forward to the Bank Holiday weekend.

Rafal & Mossy have been working on the Lobbying web application. They have been putting some finishing touches to the application.

Murilo has been working on the CSS for the Lobbying application. The CSS will feature high contrast colours which will mean the site will be more accessible. He is also working on transferring some old virtual machines over from Tomas's old machine to his new one. This involves getting the old VHD file to work on Hyper-V.

Murilo has also delivered an update to our Hawkeye application. The new update allows us to monitor various Azure products and to alert us when they go down which means we can quickly determine if an issue lies with an application or with Azure.

Fabrizio has been working on some new features for IKEA Swipe a Surpirse.

Kit has been doing some fantastic work on an update for a client and we hope to have more on this very soon.

Tomas has been working on finishing some updates for CIS. He also manged to fit in some other work for other clients.

Trevor and Martin have been going to meetings to get a scope on a new project.

I've been working steadily on updates to the Irish Rail project as well provide support to existing clients. 

And we are happy to announce the return of Greg who has finished his degree with Griffith College and will be starting work here on Tuesday. 

We look forward to welcoming him back to the Dovetail team.

Hej Copenhagen, nice to meet you.

Trevor and I had a quick visit to Copenhagen this week. We were meeting a potential new client which is exciting.

All business aside, it was fun to visit a new country and city. I've never been to Denmark or Copenhagen before, so we got a little time to explore the city before our return flight. Trying to avoid the usual tourist traps, we scouted out a lovely little Danish restaurant called Restaurant Kronborg, where we experienced some traditional cuisine consisting of smoked fish on an open face sandwich.

Restaurant Kronborg

Copenhagen is a lovely little city. I won't mention the last minute booking by a certain someone that resulted in us staying in a hostel in the red light district. The amount of bicycles there is simply staggering, and everyone is so positive about cycling there. The infrastructure helps a huge amount too. Dublin seems to be going through a cycling revolution at the moment and can learn a lot from Copenhagen, with our city also being relatively small and flat.

Dovetail visits Copenhagen

Goldfish visit Dovetail

I brought my two Goldfish with me today to work and they have set to work with immediate effect. Their job "Be a Fish".

As I'm moving soon to a new place I needed to re-home these cool Shubunkin Goldfish.


They will be in the Dovetail office for about month or so.

All thanks to Trevor for letting me use the office to house them.

Headphones and Interns

Its been a busy May for Dovetail we have been working flat out on projects throughout the month.

Mossy, Kit & Rafal have been making continuing updates to the new web application launched last month. You can read about it in our last blog post it uses lots of cool stuff.

Fabrizio has been Flat-packed out on IKEA Swipe a Surprise Phase II. Phase I launched this month in stores. Swipe a Surprise sees IKEA Family members win some cool prizes from doughnuts to Holidays. Head to your local IKEA store to see what the fuss is all about.

Trevor & Martin have been busy with meetings for a new client. 

Tomas has been busy working on the updates for CIS Ireland.

I've been busy on the Irish Rail project which will allow Irish Rail to keep track of their Fixed Penalties issued on Trains. I've also been helping FSAI with some updates to their web site.

Dovetail would also like to introduce Murilo. He hails from Brazil and will be interning here at Dovetail. I'm sure he will introduce himself in the next blog post.

Turtle Beach Headphones - Mini-Review

Last week I broke my beloved Logitech wireless headset. I had them for a good 5-6 years. They served me well. So on the advice of Mossy I checked out Turtle Beach headphones. I specifically bought ones that were compatible with the PS4 and PS3. I am very impressed with them so far and I am happy to have some music on when I'm coding.

New Register of Lobbying launched

The Standards in Public Office Commission has today launched the register of lobbying activity The Register will identify to the public who is communicating with Government and senior civil and public servants on public policy.

The register is being established under the recently enacted Regulation of Lobbying Act 2015. It will provide a simple, web based register of lobbying activity giving transparency on "who is contacting whom about what".

Those who may need to register lobbying activity can now begin to use the website. They will be obliged by law to register lobbying activity that takes place from September 1st next.

They must make returns of lobbying activity every four months, with the first returns being due by January 21st 2016.

The system was developed by Dovetail Technologies using Web API, ASP.NET MVC and AngularJS. The system uses Foundation as its layout engine, the Open Source Content Management System Umbraco and the Lucene search engine.

See the Irish Times coverage here.


Minister Brendan Howlin at the launch of

Two meetups last week


Last Tuesday Mossy and I went to AngularJS Dublin meetup - "Meetup #2 - Aer Lingus case study, Ionic and Comtrade's Protractor experience" which was held at Google HQ - a couple of very informative and insightful talks there.

The first one, and my personal favorite of the evening was by Jason Marah mostly about optimizations of resources such as templates, images and i18n. One of the nice things he mentioned was which delivers properly sized images according to current page width (works as a CDN) - go check it out.

The second talk was by Aleksandar Ristic and it was about Protractor which is an end-to-end testing framework for Angular web apps (it can be used for testing non-Angular apps as well). It's a NodeJS program built on top of WebDriverJS and Aleksandar showed us some basic workflows of working with it and a couple of neat tricks to get everyone started with Protractor.

The third, and last talk of the evening was by Mohammed Malaka on Ionic - an open-source front-end SDK for developing hybrid mobile apps with HTML5. What Ionic is, is essentially front-end building blocks (Ionic) on top of Angular on top of Cordova. According to Mohammed, it's nice to work with, gives you lots of features to build your apps fast, works nice and is apparently pretty performant for a hybrid approach.

Just a day after that there was another meetup - Ruby Ireland "Slash & Burn the Backend", focused on DB workload and ORM's. I thought ideas from this meetup could be very interesting and applicable to .net world as well so I went there. Both talks were held buy guys from Intercom.

The first talk - “Slash Your Query Times” was by Ciaran Lee. He talked about how they profiled their DB queries which helped them in figuring out the bottlenecks of their system. They even created a neat DB query fingerprinting tool for Ruby which they said they would open-source. Nice one!

The second talk - “ActiveRecord: It Burns!” was by Brian White and it was about a couple of bad design patterns and problems one can run into with ActiveRecord. The whole talk had kind of a philosophical approach.

Anyway, I really enjoyed all of them and I’m really looking forward to the next one that will be held in a few weeks - “, JS Game Development and Building Responsive sites with AngularJS” . Sounds like a whole lot of interesting topics!



Secrets and Returns

It has been another busy week for Dovetail. But we do find some time to find some new interesting things on the Web.

But before we tell you some of these 'Secrets of the Web' lets go for a round up.

Kit and Rafal have been busy working on the new Register of Lobbying for the Standards in Public Office.

Mossy has been working flat out on the updates to MenuCal.

Fabrizio & Trevor went to meet IKEA during the week to discuss the Swipe a Surprise feature.

And now for.....

The 'Secrets' of the web

Here are a couple of nice links we found recently:

Google equation simulator with cool 3D effect (*sin(y)) thanks to Tomas for the spot.

Google also recently added the 'Find My Phone' feature into their search result page. If you have an Android phone type 'Find My Phone' into Google for easier and quicker access to 'Find My Phone'. Thanks to Kit for the spot.

Dovetail Rumors

Rumor has it that someone is returning to Dovetail in the near future. 

Can you guess who it could be?