home *** CD-ROM | disk | FTP | other *** search
- package sun.net.smtp;
-
- import java.io.IOException;
- import java.io.PrintStream;
- import java.net.InetAddress;
- import sun.net.NetworkClient;
- import sun.net.TransferProtocolClient;
-
- public class SmtpClient extends TransferProtocolClient {
- SmtpPrintStream message;
-
- public void closeServer() throws IOException {
- if (((NetworkClient)this).serverIsOpen()) {
- this.closeMessage();
- this.issueCommand("QUIT\r\n", 221);
- super.closeServer();
- }
-
- }
-
- void issueCommand(String var1, int var2) throws IOException {
- ((TransferProtocolClient)this).sendServer(var1);
-
- int var3;
- while((var3 = ((TransferProtocolClient)this).readServerResponse()) != var2) {
- if (var3 != 220) {
- throw new SmtpProtocolException(((TransferProtocolClient)this).getResponseString());
- }
- }
-
- }
-
- private void toCanonical(String var1) throws IOException {
- this.issueCommand("rcpt to: " + var1 + "\r\n", 250);
- }
-
- // $FF: renamed from: to (java.lang.String) void
- public void method_0(String var1) throws IOException {
- int var2 = 0;
- int var3 = var1.length();
- int var4 = 0;
- int var5 = 0;
- int var6 = 0;
-
- for(boolean var7 = false; var4 < var3; ++var4) {
- char var8 = var1.charAt(var4);
- if (var6 > 0) {
- if (var8 == '(') {
- ++var6;
- } else if (var8 == ')') {
- --var6;
- }
-
- if (var6 == 0) {
- if (var5 > var2) {
- var7 = true;
- } else {
- var2 = var4 + 1;
- }
- }
- } else if (var8 == '(') {
- ++var6;
- } else if (var8 == '<') {
- var2 = var5 = var4 + 1;
- } else if (var8 == '>') {
- var7 = true;
- } else if (var8 == ',') {
- if (var5 > var2) {
- this.toCanonical(var1.substring(var2, var5));
- }
-
- var2 = var4 + 1;
- var7 = false;
- } else if (var8 > ' ' && !var7) {
- var5 = var4 + 1;
- } else if (var2 == var4) {
- ++var2;
- }
- }
-
- if (var5 > var2) {
- this.toCanonical(var1.substring(var2, var5));
- }
-
- }
-
- public void from(String var1) throws IOException {
- this.issueCommand("mail from: " + var1 + "\r\n", 250);
- }
-
- private void openServer(String var1) throws IOException {
- ((NetworkClient)this).openServer(var1, 25);
- this.issueCommand("helo " + InetAddress.getLocalHost().getHostName() + "\r\n", 250);
- }
-
- public PrintStream startMessage() throws IOException {
- this.issueCommand("data\r\n", 354);
- return this.message = new SmtpPrintStream(super.serverOutput, this);
- }
-
- void closeMessage() throws IOException {
- if (this.message != null) {
- this.message.close();
- }
-
- }
-
- public SmtpClient(String var1) throws IOException {
- if (var1 != null) {
- try {
- this.openServer(var1);
- return;
- } catch (Exception var5) {
- }
- }
-
- try {
- String var2 = System.getProperty("mail.host");
- if (var2 != null) {
- this.openServer(var2);
- return;
- }
- } catch (Exception var4) {
- }
-
- try {
- this.openServer("localhost");
- } catch (Exception var3) {
- this.openServer("mailhost");
- }
- }
-
- public SmtpClient() throws IOException {
- this((String)null);
- }
- }
-