• <begin>

    Dim strRecip As String

    Dim strTo() As String = recipients.Split(";")

    For Each strRecip In strTo

    MailMsg.To.Add(New MailAddress(strRecip))

    Next

    Instead of looping thru the array have you considered something like String.Join(",", strTo) ?

    This allows you to let MS manage the looping and also inserts the comma between names. Since you Split(";") I wonder if it might be easier/quicker to recipients.Replace(";", ",") and thus no need for the array to begin with and you now have a comma separated list that the Address collection is looking for?

    Cool function and thanks for a good demo of making a clr function for SQL Server.