SyntaxHighlighter

Tuesday, 19 October 2010

Sending Email using ASP.NET via Google Apps Mail / GMail

I have recently moved all my hosting to go through Google Apps and it is sweet :)

This meant that I needed to modify my emailing routine in various .NET apps. A lot of this can be done via the Web.Config, but due to various reasons, I need to control it in code.

So configure your MailMessage object as per usual. I have added msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; to mine, which could prove to be useful. Then configure your SmtpClient a follows:

SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.EnableSsl = true;
smtp.Timeout = 10000;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential("email@mydomain.com", "my-password");
smtp.Send(msg);

Now a lot of articles I read suggested that you need to use port number 587 for the SmtpClient. When I did, I got the following error:

Request for the permission of type 'System.Net.Mail.SmtpPermission' failed

So I tried without declaring it and it worked just fine :)

A point worth noting: Make sure the account you are sending the email through is the same account that you are sending from.

Thursday, 26 August 2010

GRANT ALL Permissions on SQL Objects

Here's a quick little widget I created to GRANT ALL permissions on all SQL Server objects. It's crude and nasty, but does the trick. Quite easy to modify if need be...

DECLARE cObjects CURSOR READ_ONLY
FOR
SELECT name, xtype
FROM sysobjects
LEFT OUTER JOIN syspermissions ON sysobjects.id = syspermissions.id
WHERE xtype IN ('V', 'P', 'U', 'FN')
AND syspermissions.id IS NULL

DECLARE @ObjName varchar(255), @ObjType varchar(2)
DECLARE @SQL varchar(MAX)
DECLARE @User varchar(100)
SELECT @User = '[DOMAIN]\[USER]'

OPEN cObjects

FETCH NEXT FROM cObjects INTO @ObjName, @ObjType
WHILE (@@FETCH_STATUS <> -1)
BEGIN
 IF (@@FETCH_STATUS <> -2)
 BEGIN
  --Set the access permissions
  IF @ObjType = 'V' -- View
   SELECT @SQL = 'SELECT, INSERT, DELETE, UPDATE'
  ELSE IF @ObjType = 'P' -- Stored Procedure
   SELECT @SQL = 'EXEC'
  ELSE IF @ObjType = 'U' -- Table
   SELECT @SQL = 'SELECT, INSERT, DELETE, UPDATE'
  ELSE IF @ObjType = 'FN' -- User Defined Function
   SELECT @SQL = 'EXEC'

  --Build the rest of the statement and execute
  SELECT @SQL = 'GRANT ' + @SQL + ' ON dbo.[' + @ObjName + '] TO [' + @User + ']'
  EXEC(@SQL)
  PRINT @SQL
 END
 FETCH NEXT FROM cObjects INTO @ObjName, @ObjType
END

CLOSE cObjects
DEALLOCATE cObjects
GO

Syntax Highlighting / Format Code in Blogger

Check out SyntaxHighlighter for some top syntax highlighting in Blogger. It can be used in various blogs. Here is a walk-through on integrating SyntaxHighligher into Blogger.

Monday, 23 August 2010

Multi-Script, Multi-DB Deployments

A useful, but quite obvious way of executing multiple scripts: http://www.sqlservercentral.com/articles/scripting/70783/.

I need to do this quite regularly - so will probably write a little widget to compile the scripts into a file. Hopefully save a little bit of time there as well :)

Wednesday, 11 August 2010

Change Proxy Server in IE

Here's a nifty way to easily change the proxy server in IE: www.proxychanger.com.

I had a situation recently where I needed to be able to easily turn using a proxy on and off. This saves having to type it in everytime after you have removed it.

AJAX Loading Animation

Came across this useful free widget to create a nice AJAX loading icon: www.ajaxload.info. You can choose a type along with background and foreground colours.

Custom Domains on Blogger/BlogSpot.com

Had a real nightmare over the last couple of days getting the custom domain thing working for a blogspot.com site that uses a sub-domain.

Following instructions on How do I use a custom domain name on my blog?, I contacted my host (who will remain nameless - by the by, there should be a follow-up rant post about them, but I won't...) and asked them to set the CNAME record for blog.thewebsiteinquestion.com to ghs.google.com. They did and it worked - for a few hours.

Obviously, the gremlins somehow got in and screwed it up. The hosts were convinced that the CNAME was correct - I was not. Cunningly, when going to blog.thewebsiteinquestion.com I was being directed to the Google search page.

So after a bit of hunting, I found this site http://www.kloth.net/services/dig.php that offers a lookup on the DNS info. Sure enough it politely informed me that the CNAME record was set to blogger.com and not ghs.google.com.

Sure enough, once they changed it - it all worked again and everybody was happy - especially me :)

Call to undefined function mcrypt_module_open()

I was getting a Call to undefined function mcrypt_module_open() in PHP 5. All my Google searches were giving me the usual "make sure php_mcrypt.dll is uncommented in your php.ini". Mine was and still no luck :(

Solution for me was to add libmcrypt.dll into the system32 folder - sweeet! My libmcrypt.dll was located in the root of my PHP install folder.

Happy encrypting :)

Labels

.net (7) ajax (1) android (7) apache (1) asp.net (3) asus (2) blogger (2) blogspot (3) c# (16) compact framework (2) cron (1) css (1) data (1) data recovery (2) dns (1) eclipse (1) encryption (1) excel (1) font (1) ftp (1) gmail (5) google (4) gopro (1) html (1) iis (3) internet explorer IE (1) iphone (1) javascript (3) kinect (1) linux (1) macro (1) mail (9) mercurial (1) microsoft (3) microsoft office (3) monitoring (1) mootools (1) ms access (1) mssql (13) mysql (2) open source (1) openvpn (1) pear (2) permissions (1) php (12) plesk (4) proxy (1) qr codes (1) rant (4) reflection (3) regex (1) replication (1) reporting services (5) security (2) signalr (1) sql (11) sqlce (1) sqlexpress (1) ssis (1) ssl (1) stuff (1) svn (2) syntax (1) tablet (2) telnet (3) tools (1) twitter (1) unix (3) vb script (3) vb.net (9) vba (1) visual studio (2) vpc (2) vpn (1) windows (4) woff (1) xbox 360 (1)