home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www.protocol.mailto;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.StringBufferInputStream;
- import java.net.InetAddress;
- import java.net.URL;
- import java.net.UnknownHostException;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import sun.net.smtp.SmtpClient;
- import sun.net.www.MessageHeader;
- import sun.net.www.URLConnection;
-
- public class MailToURLConnection extends URLConnection {
- // $FF: renamed from: is java.io.InputStream
- InputStream field_0;
- // $FF: renamed from: os java.io.OutputStream
- OutputStream field_1;
-
- MailToURLConnection(URL var1) {
- super(var1);
- MessageHeader var2 = new MessageHeader();
- var2.add("content-type", "text/html");
- ((URLConnection)this).setProperties(var2);
- }
-
- String getFromAddress() {
- String var1 = System.getProperty("user.fromaddr");
- if (var1 == null) {
- var1 = System.getProperty("user.name");
- if (var1 != null) {
- String var2 = System.getProperty("mail.host");
- if (var2 == null) {
- try {
- var2 = InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException var3) {
- }
- }
-
- var1 = var1 + "@" + var2;
- } else {
- var1 = "";
- }
- }
-
- return var1;
- }
-
- public void connect() throws IOException {
- }
-
- public synchronized OutputStream getOutputStream() throws IOException {
- if (this.field_1 != null) {
- return this.field_1;
- } else if (this.field_0 != null) {
- throw new IOException("Cannot write output after reading input.");
- } else {
- String var1 = super.url.getFile();
- SmtpClient var2 = new SmtpClient();
- var2.from(this.getFromAddress());
- var2.to(var1);
- this.field_1 = var2.startMessage();
- return this.field_1;
- }
- }
-
- public synchronized InputStream getInputStream() throws IOException {
- if (this.field_0 != null) {
- return this.field_0;
- } else if (this.field_1 != null) {
- return null;
- } else {
- String var1 = super.url.getFile();
- Hashtable var2 = null;
- int var3 = var1.indexOf(63);
- if (var3 >= 0) {
- String var4 = var1.substring(var3 + 1);
- var1 = var1.substring(0, var3);
- var2 = new Hashtable(3);
- StringTokenizer var5 = new StringTokenizer(var4, "&");
-
- while(var5.hasMoreTokens()) {
- String var6 = var5.nextToken();
- int var7 = var6.indexOf(61);
- if (var7 >= 0) {
- String var8 = var6.substring(0, var7);
- String var9 = var6.substring(var7 + 1);
- var2.put(var8, var9);
- }
- }
- }
-
- StringBuffer var10 = new StringBuffer();
- var10.append("<title>mailto:");
- var10.append(var1);
- var10.append("</title>\n");
- var10.append("<h1>Send Mail to ");
- var10.append(var1);
- var10.append("</h1>\n");
- var10.append("<hr>\n");
- var10.append("<applet code=sun.hotjava.applets.MailDocumentApplet width=500 height=370>\n");
- var10.append("<param name=url value=\"");
- var10.append(super.url.toExternalForm());
- var10.append("\">\n");
- var10.append("<param name=to value=\"");
- var10.append(var1);
- var10.append("\">\n");
- if (var2 != null) {
- this.addExtraFields(var10, var2);
- }
-
- var10.append("</applet>");
- this.field_0 = new StringBufferInputStream(var10.toString());
- return this.field_0;
- }
- }
-
- private void addExtraFields(StringBuffer var1, Hashtable var2) {
- Enumeration var3 = var2.keys();
-
- while(var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- String var5 = (String)var2.get(var4);
- var1.append("<param name=");
- var1.append(var4);
- var1.append(" value=\"");
- var1.append(var5);
- var1.append("\">\n");
- }
-
- }
- }
-