WebEx Meeting Integration Steps

November 5, 2008 06:18 by admin

In order to integrate WebEx into web application we need to complete the following steps:

  1. Create a developer account on WebEx developer community
    We need to create a developer account in the sandbox environment. The credentials identify and authenticate your web application request when you make an API call to WebEx.
  2. Request & Response
    Make the API calls, check the response and save to database or send the meeting details to participants via email

Creating WebEx Developer Account

You will have to create a Developer Account on the WebEx developer environment in order to test your application.  Following are the steps:

  1. Sign up at http://developers.webex.com/ with a valid email id to recieve your credentials to the WebEx system.
  2. After signing up, account information will be sent to your mail id. It may take more time, as each application will be manually reviewed by WebEx team.
  3. Email will have the SITE ID and PARTNER ID of your account.
  4. You have to use the above account information (USERNAME, PASSWORD, SITE ID, and PARTNER ID) in all the requests to authenticate your web application with WebEx.
  5. Check API Reference Guide to understand more on Parameter nodes and Key Words for the requests to be made to organise meetings.
    http://www.webex.com/pdf/white_paper_integration_APIs.pdf page number 14 onwards.

Creating Meeting (Sample Code)

In ASP.NET page, the following function will be called to schedule a meeting. The parameters will be Meeting Name, its Date and Time. In this example WebEx ID (Email Id), Password, Site Id, and Partner Id is hardcoded.

    protected void SendCreateMeetingRequestToWebEx(string MeetingName, string MeetingDate, string MeetingTime)
    {
        string strReq = @"<?xml version=""1.0"" encoding=""UTF-8""?>" +
                      "<serv:message xmlns:xsi=" + "\"" + 
                              "http://www.w3.org/2001/XMLSchema-instance" + "\"" + ">" +
                        "<header>" +
                            "<securityContext>" +
                                "<webExID>xxx@xxx.xxx</webExID>" +
                                "<password>xxxxxx</password>" +
                                "<siteID>000000</siteID>" +
                                "<partnerID>XXXX0000</partnerID>" +
                            "</securityContext>" +
                        "</header>" +
                        "<body>" +
                          "<bodyContent xsi:type=" + "\"" +
                             "java:com.webex.service.binding.meeting.CreateMeeting" + 
                             "\"" + ">" +
                            "<metaData>" +
                              "<confName>" + MeetingName + "</confName>" +
                            "</metaData>" +
                            "<schedule> " +
                              "<startDate>" + MeetingDate + " " + MeetingTime + ":00" + "</startDate> " +
                            "</schedule>" +
                          "</bodyContent>" +
                        "</body>" +
                      "</serv:message>";
        HttpWebRequest hwrRequest = ((HttpWebRequest)(HttpWebRequest.Create(" https://apidemoeu.webex.com/WBXService/XMLService")));

        hwrRequest.Method = "POST";
        hwrRequest.ContentType = "text/xml";
        UTF8Encoding encoding = new UTF8Encoding();
        byte[] postBytes = encoding.GetBytes(strReq);
        hwrRequest.ContentLength = postBytes.Length;
        Stream postStream = hwrRequest.GetRequestStream();
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Close();
        HttpWebResponse hwrResponse = ((HttpWebResponse)(hwrRequest.GetResponse()));
        Stream responseStream = hwrResponse.GetResponseStream();
        StreamReader sr = new StreamReader(responseStream);
        string respString = sr.ReadToEnd();
        respString = respString.Trim();

        /*Here we are writing to a directory as XML file to check*/
        /*Instead you read the XML nodes and find, is it success or a failure*/
        /*If success, you will have Host meeting URL and Attendee meeting URL in the Response*/
        TextWriter res = new StreamWriter(Server.MapPath(@"WebExReqRes\CreateMeeting.xml"));
        res.WriteLine(respString.ToString(), true);
        res.Close();
    }

The response will have the MeetingKey, Host URL, and Attendee URL if it is success. Now you have to push them to database to show respective URL to your users based on profile. And also you can frame emails and send to them handy.

 

Further the MeetingKey you have to use to Update Meeting or Delete a Meeting or to create Join Meeting URL for each individual attendee seperately instead of common Attendee URL.


WebEx Meeting Integration Steps

November 5, 2008 06:18 by admin

In order to integrate WebEx into web application we need to complete the following steps:

  1. Create a developer account on WebEx developer community
    We need to create a developer account in the sandbox environment. The credentials identify and authenticate your web application request when you make an API call to WebEx.
  2. Request & Response
    Make the API calls, check the response and save to database or send the meeting details to participants via email

Creating WebEx Developer Account

You will have to create a Developer Account on the WebEx developer environment in order to test your application.  Following are the steps:

  1. Sign up at http://developers.webex.com/ with a valid email id to recieve your credentials to the WebEx system.
  2. After signing up, account information will be sent to your mail id. It may take more time, as each application will be manually reviewed by WebEx team.
  3. Email will have the SITE ID and PARTNER ID of your account.
  4. You have to use the above account information (USERNAME, PASSWORD, SITE ID, and PARTNER ID) in all the requests to authenticate your web application with WebEx.
  5. Check API Reference Guide to understand more on Parameter nodes and Key Words for the requests to be made to organise meetings.
    http://www.webex.com/pdf/white_paper_integration_APIs.pdf page number 14 onwards.

Creating Meeting (Sample Code)

In ASP.NET page, the following function will be called to schedule a meeting. The parameters will be Meeting Name, its Date and Time. In this example WebEx ID (Email Id), Password, Site Id, and Partner Id is hardcoded.

    protected void SendCreateMeetingRequestToWebEx(string MeetingName, string MeetingDate, string MeetingTime)
    {
        string strReq = @"<?xml version=""1.0"" encoding=""UTF-8""?>" +
                      "<serv:message xmlns:xsi=" + "\"" + 
                              "http://www.w3.org/2001/XMLSchema-instance" + "\"" + ">" +
                        "<header>" +
                            "<securityContext>" +
                                "<webExID>xxx@xxx.xxx</webExID>" +
                                "<password>xxxxxx</password>" +
                                "<siteID>000000</siteID>" +
                                "<partnerID>XXXX0000</partnerID>" +
                            "</securityContext>" +
                        "</header>" +
                        "<body>" +
                          "<bodyContent xsi:type=" + "\"" +
                             "java:com.webex.service.binding.meeting.CreateMeeting" + 
                             "\"" + ">" +
                            "<metaData>" +
                              "<confName>" + MeetingName + "</confName>" +
                            "</metaData>" +
                            "<schedule> " +
                              "<startDate>" + MeetingDate + " " + MeetingTime + ":00" + "</startDate> " +
                            "</schedule>" +
                          "</bodyContent>" +
                        "</body>" +
                      "</serv:message>";
        HttpWebRequest hwrRequest = ((HttpWebRequest)(HttpWebRequest.Create(" https://apidemoeu.webex.com/WBXService/XMLService")));

        hwrRequest.Method = "POST";
        hwrRequest.ContentType = "text/xml";
        UTF8Encoding encoding = new UTF8Encoding();
        byte[] postBytes = encoding.GetBytes(strReq);
        hwrRequest.ContentLength = postBytes.Length;
        Stream postStream = hwrRequest.GetRequestStream();
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Close();
        HttpWebResponse hwrResponse = ((HttpWebResponse)(hwrRequest.GetResponse()));
        Stream responseStream = hwrResponse.GetResponseStream();
        StreamReader sr = new StreamReader(responseStream);
        string respString = sr.ReadToEnd();
        respString = respString.Trim();

        /*Here we are writing to a directory as XML file to check*/
        /*Instead you read the XML nodes and find, is it success or a failure*/
        /*If success, you will have Host meeting URL and Attendee meeting URL in the Response*/
        TextWriter res = new StreamWriter(Server.MapPath(@"WebExReqRes\CreateMeeting.xml"));
        res.WriteLine(respString.ToString(), true);
        res.Close();
    }

The response will have the MeetingKey, Host URL, and Attendee URL if it is success. Now you have to push them to database to show respective URL to your users based on profile. And also you can frame emails and send to them handy.

 

Further the MeetingKey you have to use to Update Meeting or Delete a Meeting or to create Join Meeting URL for each individual attendee seperately instead of common Attendee URL.


Right Browser at Right Time Google Chrome

September 2, 2008 14:45 by Ramana

Today Google has released their another beta product – a web browser Google Chrome

Chrome Team says

We improved speed and responsiveness across the board. We also built V8, a more powerful JavaScript engine, to power the next generation of web applications that aren't even possible in today's browsers.

More relief and bit tension as a development company with new Google open source web browser.

kick it on DotNetKicks.com  

We downloaded and tested it, looks sleek and different.

Relief from current slow browsers, Google Chrome is very light weighted and faster as promised.

Tension, need one more round of testing for browser compatibility with this new browser and fix CSS and JavaScript issues if any.

We spend most of time with Internet in checking mails, searching, online shopping, reading news, office work, banking - all in a browser. Within half an hour we will end up opening a dozen web pages in couple of browsers (since we don’t know when one hangs)

Now a days, clients are looking for web applications that should work like stand alone applications in browser, with all key events and with advanced mouse events. In order to build rich AJAX based web applications we will be using dojo, extjs, jquery, mootools, scriptaculous, yui, etc JavaScript libraries and write very heavy weight JavaScripts to generate sophisticated effects.

Main hurdles with current browsers are 1) JavaScript runs very slow. 2) If we open couple of tabs, the browser hangs, since it locks up something in other tab.

Chrome mainly addresses these two issues completely. It runs complex web applications very fast, thanks for Google V8 JavaScript Engine. It creates separate process for each tab, so if a tab is busy we can still use other tabs, and if any bug in rendering we can close only that tab.

Google Chrome - Kill Tabs Google Chrome - Kill Plugin

Firefox hopes to release its new version 3.1 by the end of the year, comes with JavaScript acceleration technology called TraceMonkey. Which claims much more faster than V8. Whatever may be the Browser War, ultimatly we can build faster and safer Enterprice Web Application without any second thought.

Recently we have built a very big web application with ExtJS. At times we thought of converting it to Silverlight, since the grids are not able to handle 500+ rows of data, dynamically with asynchronous reloads. Big forms were taking 6 to 15 secs to load.

Chrome really saves us from it with its fast JavaScript engine. You can check Berend’s example in ExtJS forum, it opens huge form (with 400+ fields) in just < 2 sec in Chrome, amazing. If you look at this example, of course, as said before some CSS need to be changed in skin, to align the dropdown arrow image in left properly.

Or test your browsers' performance with Dromaeo / SunSpider site . Some of Dromaeo saved test results.

ExtJS Enterprise Application in Google Chrome 

So, fellow Designers and Developers modify your CSS and JavaScript to make webpages compatible for new browser, and dear Testers and Clients you too, to find more bugs.

 


Right Browser at Right Time Google Chrome

September 2, 2008 08:45 by admin

Today Google has released their another beta product – a web browser Google Chrome

Chrome Team says

We improved speed and responsiveness across the board. We also built V8, a more powerful JavaScript engine, to power the next generation of web applications that aren't even possible in today's browsers.

More relief and bit tension as a development company with new Google open source web browser.

kick it on DotNetKicks.com  

We downloaded and tested it, looks sleek and different.

Relief from current slow browsers, Google Chrome is very light weighted and faster as promised.

Tension, need one more round of testing for browser compatibility with this new browser and fix CSS and JavaScript issues if any.

We spend most of time with Internet in checking mails, searching, online shopping, reading news, office work, banking - all in a browser. Within half an hour we will end up opening a dozen web pages in couple of browsers (since we don’t know when one hangs)

Now a days, clients are looking for web applications that should work like stand alone applications in browser, with all key events and with advanced mouse events. In order to build rich AJAX based web applications we will be using dojo, extjs, jquery, mootools, scriptaculous, yui, etc JavaScript libraries and write very heavy weight JavaScripts to generate sophisticated effects.

Main hurdles with current browsers are 1) JavaScript runs very slow. 2) If we open couple of tabs, the browser hangs, since it locks up something in other tab.

Chrome mainly addresses these two issues completely. It runs complex web applications very fast, thanks for Google V8 JavaScript Engine. It creates separate process for each tab, so if a tab is busy we can still use other tabs, and if any bug in rendering we can close only that tab.

Google Chrome - Kill Tabs Google Chrome - Kill Plugin

Firefox hopes to release its new version 3.1 by the end of the year, comes with JavaScript acceleration technology called TraceMonkey. Which claims much more faster than V8. Whatever may be the Browser War, ultimatly we can build faster and safer Enterprice Web Application without any second thought.

Recently we have built a very big web application with ExtJS. At times we thought of converting it to Silverlight, since the grids are not able to handle 500+ rows of data, dynamically with asynchronous reloads. Big forms were taking 6 to 15 secs to load.

Chrome really saves us from it with its fast JavaScript engine. You can check Berend’s example in ExtJS forum, it opens huge form (with 400+ fields) in just < 2 sec in Chrome, amazing. If you look at this example, of course, as said before some CSS need to be changed in skin, to align the dropdown arrow image in left properly.

Or test your browsers' performance with Dromaeo / SunSpider site . Some of Dromaeo saved test results.

ExtJS Enterprise Application in Google Chrome 

So, fellow Designers and Developers modify your CSS and JavaScript to make webpages compatible for new browser, and dear Testers and Clients you too, to find more bugs.

 


Right Browser at Right Time Google Chrome

September 2, 2008 08:45 by admin

Today Google has released their another beta product – a web browser Google Chrome

Chrome Team says

We improved speed and responsiveness across the board. We also built V8, a more powerful JavaScript engine, to power the next generation of web applications that aren't even possible in today's browsers.

More relief and bit tension as a development company with new Google open source web browser.

kick it on DotNetKicks.com  

We downloaded and tested it, looks sleek and different.

Relief from current slow browsers, Google Chrome is very light weighted and faster as promised.

Tension, need one more round of testing for browser compatibility with this new browser and fix CSS and JavaScript issues if any.

We spend most of time with Internet in checking mails, searching, online shopping, reading news, office work, banking - all in a browser. Within half an hour we will end up opening a dozen web pages in couple of browsers (since we don’t know when one hangs)

Now a days, clients are looking for web applications that should work like stand alone applications in browser, with all key events and with advanced mouse events. In order to build rich AJAX based web applications we will be using dojo, extjs, jquery, mootools, scriptaculous, yui, etc JavaScript libraries and write very heavy weight JavaScripts to generate sophisticated effects.

Main hurdles with current browsers are 1) JavaScript runs very slow. 2) If we open couple of tabs, the browser hangs, since it locks up something in other tab.

Chrome mainly addresses these two issues completely. It runs complex web applications very fast, thanks for Google V8 JavaScript Engine. It creates separate process for each tab, so if a tab is busy we can still use other tabs, and if any bug in rendering we can close only that tab.

Google Chrome - Kill Tabs Google Chrome - Kill Plugin

Firefox hopes to release its new version 3.1 by the end of the year, comes with JavaScript acceleration technology called TraceMonkey. Which claims much more faster than V8. Whatever may be the Browser War, ultimatly we can build faster and safer Enterprice Web Application without any second thought.

Recently we have built a very big web application with ExtJS. At times we thought of converting it to Silverlight, since the grids are not able to handle 500+ rows of data, dynamically with asynchronous reloads. Big forms were taking 6 to 15 secs to load.

Chrome really saves us from it with its fast JavaScript engine. You can check Berend’s example in ExtJS forum, it opens huge form (with 400+ fields) in just < 2 sec in Chrome, amazing. If you look at this example, of course, as said before some CSS need to be changed in skin, to align the dropdown arrow image in left properly.

Or test your browsers' performance with Dromaeo / SunSpider site . Some of Dromaeo saved test results.

ExtJS Enterprise Application in Google Chrome 

So, fellow Designers and Developers modify your CSS and JavaScript to make webpages compatible for new browser, and dear Testers and Clients you too, to find more bugs.

 


Auto Forward Outlook 'Sent' Items for Backup

August 6, 2008 10:04 by Ramana

This is third time I'm searching net for Auto BCC from Outlook. Whenever I change my laptop I forget to take the VBA script backup, and search the net again to cook the code as I need. This time I thought of posting to blog so that in future if needed i can pick it faster as well it helps lot other.

kick it on DotNetKicks.com

When I send an email I want a copy to be on GMail, in case if I change my PST or have to search quickly on my sent emails or to keep a backup copy or even to check whether my outlook and Norton have delivered it correctly. Sometimes Nortorn Outbound Email Scanning service won't resolve DNS properly and shows error. If we have sent 2 or 3 mails you won't know which one is delivered and which one is not. So to be on safer side GMail helps me.

VBA Code

Private Sub Application_ItemSend(ByVal MyMail As Object, Status As Boolean)
    Dim objEmails As Recipient
    Dim intRes As Integer
    Dim strBcc As String

    '''' Your Bcc address ''''
    strBcc = "my.sent.item@gmail.com"

    On Error Resume Next

    Set objEmails = MyMail.Recipients.Add(strBcc)
    objEmails.Type = olBCC
    If Not objEmails.Resolve Then
        intRes = MsgBox("Could not able to resolve Bcc address. Do you want to still deliever the message?", vbYesNo + vbDefaultButton1, "Could Not Resolve Bcc Recipient")
        If intRes = vbNo Then
            Status = True
        End If
    End If

    Set objEmails = Nothing
End Sub

Outlook Configuration 

  1. In Outlook open the VBA editor by pressing Alt+F11 or Tools -> Macro -> Visual Basic Editor 
  2. Open the ThisOutlookSession module, by double clicking on it.
  3. Copy the above code and paste it into ThisOutlookSession module
  4. Change the Bcc email address in the code
  5. Save it
  6. Now we need to generate the Digital Certificate:
    • Click the Start button -> All Programs -> Microsoft Office -> Microsoft Office Tools, -> Digital Certificate for VBA Projects.
    • In the your certificate's name box, type a descriptive name for the certificate.
    • When the certificate confirmation message appears, click OK.


  7. To verify the certificate in the Personal Certificates store:
    • Open Windows Internet Explorer.
    • Click on the Tools menu -> Internet Options, -> Content tab -> Certificates -> Personal tab.
    • You will find recently created certificate here


  8. Switch back to Outlook VBA editor (if closed press Alt+F11 in Outlook)
  9. Click on ThisOutlookSession module
  10. Click on the Tools menu -> Digital Signature
  11. Choose the certificate and click Ok
  12. Close the VBA Editor
  13. Close the Outlook it may ask again for saving, click Yes


  14. Reopen the Outlook, while opening it will prompt the 'Microsoft Office Outlook Security Notice'


  15. Click on 'Trust all documents from this publisher' 

That's it! It works smoothly. If you change the code, don't forget to re-apply the Digital Signature. If you like to test or troubleshoot in VBA Editor keep a bookmark (red dot) against a line in the code and send a test mail. Outlook will come to that point and wait. Next press F8 or F5 to continue further. Click on breakpoint (red dot) again to remove the same.

Happy forwarding!!!

 


Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory

August 6, 2008 08:10 by Ramana

To protect a directory in Apache web server, you need to create two files “.htaccess” and “.htpasswd”. “.htaccess” has to be placed under your designated directory. Once you place “.htaccess” under a directory, all its sub directories will inherit its parent properties. Each folder can have its own “.htaccess” file, if it needs to override or extend its parents’ properties.

“.htpasswd” is for storing Usernames and Passwords. It can be placed in the each directory or at a common place to maintain all logins at one place.

In “.htaccess” file you have to specify the path to “.htpasswd”. To protect a web folder the contents in “.htaccess” will be

AuthUserFile C:\wamp\passwords\.htpasswd
AuthName "This is Hasten secret area"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

kick it on DotNetKicks.com  

To create “.htpasswd” file with Usernames and Passwords in it, you can find a utility “htpasswd.exe” under “<Apache’s installation directory>/bin” or you can create them online using Dave Child’s page.

In command prompt navigate to the above directory and type below command
htpasswd .htpasswd a-user-name

It creates “.htpasswd” file under “<Apache’s installation directory>/bin” itself. Repeat the same command to add more usernames. Cut the file from there and paste it under desired place as mentioned in the “.htaccess” – “AuthUserFile”.

If you create with Dave Child’s page, paste the text in notepad and save file as “.htpasswd” in desired directory as mentioned in the “.htaccess” – “AuthUserFile”.

Up to now we have seen password protecting a parent folder. Now by placing the following “.htaccess” file in sub folder will make it unprotected. The contents in “.htaccess” will be

Allow from all
Satisfy Any

That’s it! It’s simple!

Are you facing any problem, let’s do discuss here, post your comment.
Let me know your feedback.


Auto Forward Outlook 'Sent' Items for Backup

August 6, 2008 04:04 by admin

This is third time I'm searching net for Auto BCC from Outlook. Whenever I change my laptop I forget to take the VBA script backup, and search the net again to cook the code as I need. This time I thought of posting to blog so that in future if needed i can pick it faster as well it helps lot other.

kick it on DotNetKicks.com

When I send an email I want a copy to be on GMail, in case if I change my PST or have to search quickly on my sent emails or to keep a backup copy or even to check whether my outlook and Norton have delivered it correctly. Sometimes Nortorn Outbound Email Scanning service won't resolve DNS properly and shows error. If we have sent 2 or 3 mails you won't know which one is delivered and which one is not. So to be on safer side GMail helps me.

VBA Code

Private Sub Application_ItemSend(ByVal MyMail As Object, Status As Boolean)
    Dim objEmails As Recipient
    Dim intRes As Integer
    Dim strBcc As String

    '''' Your Bcc address ''''
    strBcc = "my.sent.item@gmail.com"

    On Error Resume Next

    Set objEmails = MyMail.Recipients.Add(strBcc)
    objEmails.Type = olBCC
    If Not objEmails.Resolve Then
        intRes = MsgBox("Could not able to resolve Bcc address. Do you want to still deliever the message?", vbYesNo + vbDefaultButton1, "Could Not Resolve Bcc Recipient")
        If intRes = vbNo Then
            Status = True
        End If
    End If

    Set objEmails = Nothing
End Sub

Outlook Configuration 

  1. In Outlook open the VBA editor by pressing Alt+F11 or Tools -> Macro -> Visual Basic Editor 
  2. Open the ThisOutlookSession module, by double clicking on it.
  3. Copy the above code and paste it into ThisOutlookSession module
  4. Change the Bcc email address in the code
  5. Save it
  6. Now we need to generate the Digital Certificate:
    • Click the Start button -> All Programs -> Microsoft Office -> Microsoft Office Tools, -> Digital Certificate for VBA Projects.
    • In the your certificate's name box, type a descriptive name for the certificate.
    • When the certificate confirmation message appears, click OK.


  7. To verify the certificate in the Personal Certificates store:
    • Open Windows Internet Explorer.
    • Click on the Tools menu -> Internet Options, -> Content tab -> Certificates -> Personal tab.
    • You will find recently created certificate here


  8. Switch back to Outlook VBA editor (if closed press Alt+F11 in Outlook)
  9. Click on ThisOutlookSession module
  10. Click on the Tools menu -> Digital Signature
  11. Choose the certificate and click Ok
  12. Close the VBA Editor
  13. Close the Outlook it may ask again for saving, click Yes


  14. Reopen the Outlook, while opening it will prompt the 'Microsoft Office Outlook Security Notice'


  15. Click on 'Trust all documents from this publisher' 

That's it! It works smoothly. If you change the code, don't forget to re-apply the Digital Signature. If you like to test or troubleshoot in VBA Editor keep a bookmark (red dot) against a line in the code and send a test mail. Outlook will come to that point and wait. Next press F8 or F5 to continue further. Click on breakpoint (red dot) again to remove the same.

Happy forwarding!!!

 


Auto Forward Outlook 'Sent' Items for Backup

August 6, 2008 04:04 by admin

This is third time I'm searching net for Auto BCC from Outlook. Whenever I change my laptop I forget to take the VBA script backup, and search the net again to cook the code as I need. This time I thought of posting to blog so that in future if needed i can pick it faster as well it helps lot other.

kick it on DotNetKicks.com

When I send an email I want a copy to be on GMail, in case if I change my PST or have to search quickly on my sent emails or to keep a backup copy or even to check whether my outlook and Norton have delivered it correctly. Sometimes Nortorn Outbound Email Scanning service won't resolve DNS properly and shows error. If we have sent 2 or 3 mails you won't know which one is delivered and which one is not. So to be on safer side GMail helps me.

VBA Code

Private Sub Application_ItemSend(ByVal MyMail As Object, Status As Boolean)
    Dim objEmails As Recipient
    Dim intRes As Integer
    Dim strBcc As String

    '''' Your Bcc address ''''
    strBcc = "my.sent.item@gmail.com"

    On Error Resume Next

    Set objEmails = MyMail.Recipients.Add(strBcc)
    objEmails.Type = olBCC
    If Not objEmails.Resolve Then
        intRes = MsgBox("Could not able to resolve Bcc address. Do you want to still deliever the message?", vbYesNo + vbDefaultButton1, "Could Not Resolve Bcc Recipient")
        If intRes = vbNo Then
            Status = True
        End If
    End If

    Set objEmails = Nothing
End Sub

Outlook Configuration 

  1. In Outlook open the VBA editor by pressing Alt+F11 or Tools -> Macro -> Visual Basic Editor 
  2. Open the ThisOutlookSession module, by double clicking on it.
  3. Copy the above code and paste it into ThisOutlookSession module
  4. Change the Bcc email address in the code
  5. Save it
  6. Now we need to generate the Digital Certificate:
    • Click the Start button -> All Programs -> Microsoft Office -> Microsoft Office Tools, -> Digital Certificate for VBA Projects.
    • In the your certificate's name box, type a descriptive name for the certificate.
    • When the certificate confirmation message appears, click OK.


  7. To verify the certificate in the Personal Certificates store:
    • Open Windows Internet Explorer.
    • Click on the Tools menu -> Internet Options, -> Content tab -> Certificates -> Personal tab.
    • You will find recently created certificate here


  8. Switch back to Outlook VBA editor (if closed press Alt+F11 in Outlook)
  9. Click on ThisOutlookSession module
  10. Click on the Tools menu -> Digital Signature
  11. Choose the certificate and click Ok
  12. Close the VBA Editor
  13. Close the Outlook it may ask again for saving, click Yes


  14. Reopen the Outlook, while opening it will prompt the 'Microsoft Office Outlook Security Notice'


  15. Click on 'Trust all documents from this publisher' 

That's it! It works smoothly. If you change the code, don't forget to re-apply the Digital Signature. If you like to test or troubleshoot in VBA Editor keep a bookmark (red dot) against a line in the code and send a test mail. Outlook will come to that point and wait. Next press F8 or F5 to continue further. Click on breakpoint (red dot) again to remove the same.

Happy forwarding!!!

 


Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory

August 6, 2008 02:10 by admin

To protect a directory in Apache web server, you need to create two files “.htaccess” and “.htpasswd”. “.htaccess” has to be placed under your designated directory. Once you place “.htaccess” under a directory, all its sub directories will inherit its parent properties. Each folder can have its own “.htaccess” file, if it needs to override or extend its parents’ properties.

“.htpasswd” is for storing Usernames and Passwords. It can be placed in the each directory or at a common place to maintain all logins at one place.

In “.htaccess” file you have to specify the path to “.htpasswd”. To protect a web folder the contents in “.htaccess” will be

AuthUserFile C:\wamp\passwords\.htpasswd
AuthName "This is Hasten secret area"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

kick it on DotNetKicks.com  

To create “.htpasswd” file with Usernames and Passwords in it, you can find a utility “htpasswd.exe” under “<Apache’s installation directory>/bin” or you can create them online using Dave Child’s page.

In command prompt navigate to the above directory and type below command
htpasswd .htpasswd a-user-name

It creates “.htpasswd” file under “<Apache’s installation directory>/bin” itself. Repeat the same command to add more usernames. Cut the file from there and paste it under desired place as mentioned in the “.htaccess” – “AuthUserFile”.

If you create with Dave Child’s page, paste the text in notepad and save file as “.htpasswd” in desired directory as mentioned in the “.htaccess” – “AuthUserFile”.

Up to now we have seen password protecting a parent folder. Now by placing the following “.htaccess” file in sub folder will make it unprotected. The contents in “.htaccess” will be

Allow from all
Satisfy Any

That’s it! It’s simple!

Are you facing any problem, let’s do discuss here, post your comment.
Let me know your feedback.