Friday, 11 January 2013

Store Form Data

Task: Create a page which has form by default where we can add different form fields like text, radio buttons, file upload and so on..

Sol
  Step 1:  Create a template and add properties as shown in the following example. Here the template name is 'formtemplate' 
   Also add resourceType property to the template..

           

Step 2: 
      Add property called Sling:resourceType as 'foundation/components/parsys'

Step 3:
      
     Will up soon...
    
      



Note: 

   1. While configuring Action to store the data, we specify the path as follows:
      Eg: /tmp/formdata   or /tmp/formdata/
   
   To Override the form data, We have to specify like
      /tmp/formdata
   To store data in another node, We have to specify like
      /tmp/formdata/


   
     

Retrieve OSGI Configurations

Scenario: How to retrieve configuration details in jsp/class ?

Solutions

@Reference
    ConfigurationAdmin configAdmin;


Configuration config = configAdmin.getConfiguration("com.day.cq.mailer.DefaultMailService");
           
Dictionary<?, ?> d = config.getProperties();

log.debug("Configurations Dictionary:{}"+d);

String hostName= (String) d.get("smtp.host");



Sunday, 6 January 2013

Configuring Email Notification


In order to send email from CQ, the Day CQ Mail Service needs to be configured properly. 
Procedure: 1. Go to felix web console (http://<host-name>:<port>/system/console/configMgr)
2. Search for Day CQ Mail Service
3. Edit and configure as follows:

a.  The SMTP server port must be 25 or higher.
b.  The SMTP server host name must not be blank.
c.  The "From" address must not be blank.  

Screen shot:


Simple code to send an email

There are difference ways to send an email.

Method 1: Using SimpleEmail

        SimpleEmail email = new SimpleEmail();
        email.setHostName('smtp.gmail.com");
        email.addTo("mail@gmail.com", "John Doe");
        email.setFrom("yourmail@gmail.com", "Me");
        email.setSubject("Test message");
        email.setMsg("This is a simple test of commons-email");
        email.send();

Method 2: Using HtmlEmail without using MessageGateway


        HtmlEmail email = new HtmlEmail();
        email.setHostName("smtp.gmail.com");
        email.addTo("mail@domain.com", "John Doe");
        email.setFrom("yourmail@domain.com", "Me");
        email.setSubject("Test email with inline image");

        // set the html message //
        email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"
        +cid+"\"></html>");
         
        // set the alternative message
        email.setTextMsg("Your email client does not support HTML messages");
        email.send();

Note: We can also read smtp details from the felix console configurations instead of passing smtp details directly. 
Ref: http://www.blogger.com/blogger.g?blogID=8547815981944994348#editor/target=post;postID=3901523167605550399