advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

tmail


// Scrolling Message V2.00
// R. BERTHOU

// Standard Java Imports
// import java.awt.*;

import java.applet.Applet;

import java.net.*;
import java.io.*;
import java.awt.*;


public class tMail extends java.applet.Applet {
    TextArea	tMessage ;
	Button	    bEnvoie  ;
    TextField   tSubject ;
    TextField   tTo      ;
    TextField   tFrom    ;



// Applet initialisation routine
public void init() {

	GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints g = new GridBagConstraints();
    setFont(new Font("Helvetica", Font.PLAIN, 12));
    setLayout(gridbag);

    g.anchor	 = GridBagConstraints.NORTHEAST ;
    g.fill		 = GridBagConstraints.HORIZONTAL ;
    g.weightx	 = 1.0 ;
    g.weighty	 = 1.0;

	g.gridwidth = GridBagConstraints.REMAINDER; //end row
	bEnvoie = new Button("Envoie") ;
    gridbag.setConstraints(bEnvoie, g);
	add(bEnvoie);

	g.gridwidth = GridBagConstraints.RELATIVE ;
	Label l0 = new Label("From :") ;
    gridbag.setConstraints(l0, g);
	add(l0);

	tFrom = new TextField("moi@monserveur.com") ;
    gridbag.setConstraints(tFrom, g);
	add(tFrom);

	g.gridwidth = GridBagConstraints.REMAINDER; //end row

	bEnvoie = new Button("Envoie") ;
    gridbag.setConstraints(bEnvoie, g);
	add(bEnvoie);

	g.gridwidth = GridBagConstraints.RELATIVE ;
	Label l1 = new Label("To :") ;
    gridbag.setConstraints(l1, g);
	add(l1);

	g.gridwidth = GridBagConstraints.REMAINDER; //end row
	tTo = new TextField("xxxx@yyyy.com") ;
    gridbag.setConstraints(tTo, g);
	add(tTo);

	g.gridwidth = GridBagConstraints.RELATIVE ;
	Label l2 = new Label("Subject :") ;
    gridbag.setConstraints(l2, g);
	add(l2);

	g.gridwidth = GridBagConstraints.REMAINDER; //end row
	tSubject = new TextField("Test tMail") ;
    gridbag.setConstraints(tSubject, g);
	add(tSubject);

	g.gridwidth = GridBagConstraints.RELATIVE ;
	Label l3 = new Label("Message :") ;
    gridbag.setConstraints(l3, g);
	add(l3);

    g.fill		 = GridBagConstraints.BOTH ;
	g.gridwidth  = GridBagConstraints.REMAINDER; //end row
	g.gridheight = GridBagConstraints.REMAINDER; //end col
	tMessage     = new TextArea("...",5,40) ;
    gridbag.setConstraints(tMessage, g);
	add(tMessage);

} // end of init


public boolean action(Event evt, Object arg)
{
	if (evt.target instanceof Button) {
      try {
 		 sendMail(tTo.getText(),
				  tFrom.getText(),
                  tSubject.getText(),
                  tMessage.getText() ) ;
      }
      catch(UnknownHostException uhe)
	  {
		 Debug("-->uhe " + uhe ) ;
	  }
      catch(ProtocolException pe)
	  {
		 Debug("-->pe " + pe ) ;
	  }
      catch(IOException ioe)
	  {
		 Debug("-->ioe " + ioe ) ;
	  }
	}

	return true ;
}



public void sendMail(String to_address,   // Destinataire du message
                        String from_address, // Emeteur du message
                        String sSu,          // Sujet du message
                        String sMess)        // Message
         throws IOException, ProtocolException, UnknownHostException
 {

	 tMessage.setText("") ;
	 Debug("--- Envoie de Mail----") ;
	 Debug("--- From : " + from_address) ;
	 Debug("--- To   : " + to_address) ;
	 Debug("--- Sujet: " + sSu) ;
	 Debug("--- Mess : " + sMess) ;
	 Debug("----------------------") ;

     Socket socket;       // Le Socket
     DataInputStream in;  // Le stream de lecture du Socket
     PrintStream out;     // Le stream d'ecriture du Socket
     String host;         // Identification du poste
     String str;          // Pour la lecture de donnees
     // Identification du poste
     // host = InetAddress.getLocalHost().toString() ;
	 host = new String("www.aol.com") ;

     // Ouverture du socket (connection au mailServer)
     //   et des streams de lecture et d'ecriture
     socket = new Socket(getDocumentBase().getHost(), 25);
     in     = new DataInputStream(socket.getInputStream());
     out    = new PrintStream(socket.getOutputStream());
     // lecture du message initial
	 str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("220"))
		 throw new ProtocolException(str);
     while (str.indexOf('-') == 3) {
		 str = in.readLine();
		 Debug(str) ;
         if (!str.startsWith("220"))
            throw new ProtocolException(str);
	 }
     // fin message initial

     // Dialogue avec les Serveur de mail
	 // Envoie de HELO au serveur SMTP
     out.println( "HELO " + host );
	 out.flush() ;
	 str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("250"))    throw new ProtocolException(str);
     // On est connecte au serveur de Mail...
	 // Envoie du Mail
     out.println( "MAIL FROM: " + from_address );
	 out.flush() ;
     str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("250"))    throw new ProtocolException(str);
     // A qui envoie t on cela
	 out.println( "RCPT TO: " + to_address );
     out.flush() ;
     str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("250"))    throw new ProtocolException(str);
     // Est on pret a envoyer les donnees
	 out.println( "DATA" );
     out.flush() ;
	 str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("354"))    throw new ProtocolException(str);
     // Emmeteur - Destinataire - Sujet
     out.println("From: " + from_address);
	 out.println("To: " + to_address);
     out.println( "Subject: " + sSu + "\n" );
	 out.flush() ;
     out.println("Comment: Unauthenticated sender");
     out.println("X-Mailer: Simple tSmtp");
	 out.println("");
     out.println( sMess ) ;
     out.println(".") ;
	 out.flush() ;
     str = in.readLine();

	 Debug(str) ;

     if (!str.startsWith("250"))    throw new ProtocolException(str);

     out.println("QUIT");
	 out.flush();
	 in.close() ;

	 Debug("Fin du Mail...") ;

     socket.close()  ;
	 return ;
}

public void Debug(String str)
{
//	System.out.println(str) ;
	tMessage.appendText(str + "\n") ;

	return ;
}

public static void main(String args[])
{
	Frame f = new Frame("tMail");
	tMail tM = new tMail();
	tM.init();
	tM.start();

	f.add("Center", tM);
	f.resize(350, 200);
	f.pack();
	f.show();
   }

}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 DevX Skillbuilding from IBM developerWorks
 RIA Run Contest: Build Next-Gen Apps in Microsoft Silverlight 2
 Avaya DevConnect Center
 Intel Go Parallel Portal
 Internet.com eBook Library
 Microsoft RIA Development Center
 Destination .NET
XML error: not well-formed (invalid token) at line 53
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Alfresco's Latest ECM: Prying Open a Sector?
SaaS Tool Offers Custom Database Development
Microsoft’s Automated Agent: Can We Talk?
Borland Finally Sells CodeGear
Red Hat Heads for the JON 2.0
Out with the Old, in with the New at JavaOne
Trolltech Expands WebKit Footprint
Oracle: Eating its Own Open Source Food
Big Money and Open Source May Not Compute
Open Source Embrace Gives Sun New Fans

Getting Started with TBB on Windows
Moving to VoIP: Should You Go It Alone?
Introduction to the WPF Command Framework
7.0, Microsoft's Lucky Version?
Will Hyper-V Make VMware This Decade's Netscape?
Eliminate Fragmentation Frustration with Netbiscuits
Taming Trees: Building Branching Structures
Clean Up Function Syntax Mess with decltype
Sutter Speaks: The Future of Concurrency
INTEL SCAVENGER HUNT, LENOVO X300 AND APPLE IPOD TOUCH GIVEAWAY (the "Giveaway")

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Microsoft Article: 7.0, Microsoft's Lucky Version?
Microsoft Article: Hyper-V--The Killer Feature in Windows Server 2008
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Windows Server 2008
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES