home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / net / www / protocol / mailto / MailToURLConnection.class (.txt) < prev   
Encoding:
Java Class File  |  1997-07-08  |  3.5 KB  |  136 lines

  1. package sun.net.www.protocol.mailto;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.io.StringBufferInputStream;
  7. import java.net.InetAddress;
  8. import java.net.URL;
  9. import java.net.UnknownHostException;
  10. import java.util.Enumeration;
  11. import java.util.Hashtable;
  12. import java.util.StringTokenizer;
  13. import sun.net.smtp.SmtpClient;
  14. import sun.net.www.MessageHeader;
  15. import sun.net.www.URLConnection;
  16.  
  17. public class MailToURLConnection extends URLConnection {
  18.    // $FF: renamed from: is java.io.InputStream
  19.    InputStream field_0;
  20.    // $FF: renamed from: os java.io.OutputStream
  21.    OutputStream field_1;
  22.  
  23.    MailToURLConnection(URL var1) {
  24.       super(var1);
  25.       MessageHeader var2 = new MessageHeader();
  26.       var2.add("content-type", "text/html");
  27.       ((URLConnection)this).setProperties(var2);
  28.    }
  29.  
  30.    String getFromAddress() {
  31.       String var1 = System.getProperty("user.fromaddr");
  32.       if (var1 == null) {
  33.          var1 = System.getProperty("user.name");
  34.          if (var1 != null) {
  35.             String var2 = System.getProperty("mail.host");
  36.             if (var2 == null) {
  37.                try {
  38.                   var2 = InetAddress.getLocalHost().getHostName();
  39.                } catch (UnknownHostException var3) {
  40.                }
  41.             }
  42.  
  43.             var1 = var1 + "@" + var2;
  44.          } else {
  45.             var1 = "";
  46.          }
  47.       }
  48.  
  49.       return var1;
  50.    }
  51.  
  52.    public void connect() throws IOException {
  53.    }
  54.  
  55.    public synchronized OutputStream getOutputStream() throws IOException {
  56.       if (this.field_1 != null) {
  57.          return this.field_1;
  58.       } else if (this.field_0 != null) {
  59.          throw new IOException("Cannot write output after reading input.");
  60.       } else {
  61.          String var1 = super.url.getFile();
  62.          SmtpClient var2 = new SmtpClient();
  63.          var2.from(this.getFromAddress());
  64.          var2.to(var1);
  65.          this.field_1 = var2.startMessage();
  66.          return this.field_1;
  67.       }
  68.    }
  69.  
  70.    public synchronized InputStream getInputStream() throws IOException {
  71.       if (this.field_0 != null) {
  72.          return this.field_0;
  73.       } else if (this.field_1 != null) {
  74.          return null;
  75.       } else {
  76.          String var1 = super.url.getFile();
  77.          Hashtable var2 = null;
  78.          int var3 = var1.indexOf(63);
  79.          if (var3 >= 0) {
  80.             String var4 = var1.substring(var3 + 1);
  81.             var1 = var1.substring(0, var3);
  82.             var2 = new Hashtable(3);
  83.             StringTokenizer var5 = new StringTokenizer(var4, "&");
  84.  
  85.             while(var5.hasMoreTokens()) {
  86.                String var6 = var5.nextToken();
  87.                int var7 = var6.indexOf(61);
  88.                if (var7 >= 0) {
  89.                   String var8 = var6.substring(0, var7);
  90.                   String var9 = var6.substring(var7 + 1);
  91.                   var2.put(var8, var9);
  92.                }
  93.             }
  94.          }
  95.  
  96.          StringBuffer var10 = new StringBuffer();
  97.          var10.append("<title>mailto:");
  98.          var10.append(var1);
  99.          var10.append("</title>\n");
  100.          var10.append("<h1>Send Mail to ");
  101.          var10.append(var1);
  102.          var10.append("</h1>\n");
  103.          var10.append("<hr>\n");
  104.          var10.append("<applet code=sun.hotjava.applets.MailDocumentApplet width=500 height=370>\n");
  105.          var10.append("<param name=url value=\"");
  106.          var10.append(super.url.toExternalForm());
  107.          var10.append("\">\n");
  108.          var10.append("<param name=to value=\"");
  109.          var10.append(var1);
  110.          var10.append("\">\n");
  111.          if (var2 != null) {
  112.             this.addExtraFields(var10, var2);
  113.          }
  114.  
  115.          var10.append("</applet>");
  116.          this.field_0 = new StringBufferInputStream(var10.toString());
  117.          return this.field_0;
  118.       }
  119.    }
  120.  
  121.    private void addExtraFields(StringBuffer var1, Hashtable var2) {
  122.       Enumeration var3 = var2.keys();
  123.  
  124.       while(var3.hasMoreElements()) {
  125.          String var4 = (String)var3.nextElement();
  126.          String var5 = (String)var2.get(var4);
  127.          var1.append("<param name=");
  128.          var1.append(var4);
  129.          var1.append(" value=\"");
  130.          var1.append(var5);
  131.          var1.append("\">\n");
  132.       }
  133.  
  134.    }
  135. }
  136.