Using an extension method for a small helper task that (ab)uses the fact that the object is not dereferenced
You might want to look into code contracts instead, which allows you to write:

Contract.Requires&lt;ArgumentNullException&gt;(smtpServer != null);


This expresses clearly what you are trying to do, and has the added advantage of allowing additional static checking by the code contracts tool to check the code that calls your method for possible violations of the contract.