Moyosoft Products | Services | Download | Contact us    
Java Outlook Connector
Products  >  Java Outlook Connector  >  Example source code    
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import com.moyosoft.connector.com.*;
import com.moyosoft.connector.exception.*;
import com.moyosoft.connector.ms.outlook.*;
import com.moyosoft.connector.ms.outlook.mail.*;
import com.moyosoft.connector.ms.outlook.util.*;

public class SendMail extends JFrame
{
    private JButton buttonSend = new JButton("Send");
    private JCheckBox checkBoxTurnOffSecurityWarnings = new JCheckBox(
            "Turn OFF security warnings");
    private JTextField textFieldTo = new JTextField();
    private JTextField textFieldCc = new JTextField();
    private JTextField textFieldBcc = new JTextField();
    private JTextField textFieldSubject = new JTextField();
    private JTextArea textAreaBody = new JTextArea();

    public SendMail()
    {
        super("Send Mail");
        init();
    }

    protected void init()
    {
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        addWindowListener(new java.awt.event.WindowAdapter()
        {
            public void windowClosing(java.awt.event.WindowEvent e)
            {
                dispose();
            };
        });

        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        buttonPanel.add(buttonSend);
        buttonPanel.add(checkBoxTurnOffSecurityWarnings);

        JPanel fieldsPanel = new JPanel(new GridBagLayout());
        fieldsPanel.setBorder(BorderFactory.createEmptyBorder(84124));

        GridBagConstraints c = new GridBagConstraints();
        Insets leftInsets = new Insets(03010);
        Insets rightInsets = new Insets(01003);
        c.anchor = GridBagConstraints.NORTHWEST;

        // 0,0
        c.gridx = 0;
        c.gridy = 0;
        c.insets = leftInsets;
        fieldsPanel.add(new JLabel("To:"), c);

        // 0,1
        c.gridx = 0;
        c.gridy = 1;
        c.insets = leftInsets;
        fieldsPanel.add(new JLabel("Cc:"), c);

        // 0,2
        c.gridx = 0;
        c.gridy = 2;
        c.insets = leftInsets;
        fieldsPanel.add(new JLabel("Bcc:"), c);

        // 0,3
        c.gridx = 0;
        c.gridy = 3;
        c.insets = leftInsets;
        fieldsPanel.add(new JLabel("Subject:"), c);

        c.fill = GridBagConstraints.HORIZONTAL;
        c.weightx = 1;

        // 1,0
        c.gridx = 1;
        c.gridy = 0;
        c.insets = rightInsets;
        fieldsPanel.add(textFieldTo, c);

        // 1,1
        c.gridx = 1;
        c.gridy = 1;
        c.insets = rightInsets;
        fieldsPanel.add(textFieldCc, c);

        // 1,2
        c.gridx = 1;
        c.gridy = 2;
        c.insets = rightInsets;
        fieldsPanel.add(textFieldBcc, c);

        // 1,3
        c.gridx = 1;
        c.gridy = 3;
        c.insets = rightInsets;
        fieldsPanel.add(textFieldSubject, c);

        JPanel headerPanel = new JPanel(new BorderLayout());
        headerPanel.add(buttonPanel, BorderLayout.NORTH);
        headerPanel.add(fieldsPanel, BorderLayout.CENTER);

        JPanel mainPanel = new JPanel(new BorderLayout());
        mainPanel.setBorder(BorderFactory.createEmptyBorder(4444));
        mainPanel.add(headerPanel, BorderLayout.NORTH);
        mainPanel.add(new JScrollPane(textAreaBody), BorderLayout.CENTER);

        this.getContentPane().setLayout(new BorderLayout());
        this.getContentPane().add(mainPanel, BorderLayout.CENTER);

        setSize(580400);
        centerOnScreen(this);

        buttonSend.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                sendMail();
            }
        });
    }

    private static void centerOnScreen(Window window)
    {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension windowSize = window.getSize();
        windowSize.height = Math.min(windowSize.height + 20, screenSize.height);
        windowSize.width = Math.min(windowSize.width, screenSize.width);
        window.setLocation((screenSize.width - windowSize.width2,
                (screenSize.height - windowSize.height2);
    }

    private void sendMail()
    {
        try
        {
            Outlook outlook = new Outlook();
            OutlookSecurityManager securityManager = new OutlookSecurityManager(
                    outlook);

            try
            {
                OutlookMail mail = new OutlookMail(outlook);

                mail.setTo(textFieldTo.getText());
                mail.setCC(textFieldCc.getText());
                mail.setBCC(textFieldBcc.getText());
                mail.setSubject(textFieldSubject.getText());
                mail.setBody(textAreaBody.getText());

                if(checkBoxTurnOffSecurityWarnings.isSelected())
                {
                    securityManager.setSecurityWarningsEnabled(false);
                }

                mail.send();

                if(checkBoxTurnOffSecurityWarnings.isSelected())
                {
                    securityManager.setSecurityWarningsEnabled(true);
                }
            }
            finally
            {
                outlook.dispose();
            }

            JOptionPane.showMessageDialog(this, "Message sent successfully");
        }
        catch(ComponentObjectModelException ex)
        {
            System.out.println("COM error has occured: ");
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
        catch(LibraryNotFoundException ex)
        {
            // If this error occurs, verify the file 'moyocore.dll' is present
            // in java.library.path
            System.out.println("The Java Outlook Library hasn't been found.");
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
    }

    public static void main(String[] args)
    {
        // Set the look and feel
        try
        {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e)
        {
        }

        new SendMail().show();
    }
}