public class sun.net.smtp.SmtpClient extends sun.net.TransferProtocolClient
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.net.smtp.SmtpClient
super_class: sun.net.TransferProtocolClient
{
private static int DEFAULT_SMTP_PORT;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
java.lang.String mailhost;
descriptor: Ljava/lang/String;
flags: (0x0000)
sun.net.smtp.SmtpPrintStream message;
descriptor: Lsun/net/smtp/SmtpPrintStream;
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: bipush 25
putstatic sun.net.smtp.SmtpClient.DEFAULT_SMTP_PORT:I
return
LocalVariableTable:
Start End Slot Name Signature
public void closeServer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.net.smtp.SmtpClient.serverIsOpen:()Z
ifeq 4
1: aload 0
invokevirtual sun.net.smtp.SmtpClient.closeMessage:()V
2: aload 0
ldc "QUIT\r\n"
sipush 221
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
3: aload 0
invokespecial sun.net.TransferProtocolClient.closeServer:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/net/smtp/SmtpClient;
Exceptions:
throws java.io.IOException
void issueCommand(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.net.smtp.SmtpClient.sendServer:(Ljava/lang/String;)V
1: goto 4
start local 3 2: StackMap locals: int
StackMap stack:
iload 3
sipush 220
if_icmpeq 4
3: new sun.net.smtp.SmtpProtocolException
dup
aload 0
invokevirtual sun.net.smtp.SmtpClient.getResponseString:()Ljava/lang/String;
invokespecial sun.net.smtp.SmtpProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 3 4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.net.smtp.SmtpClient.readServerResponse:()I
dup
istore 3
start local 3 5: iload 2
if_icmpne 2
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/net/smtp/SmtpClient;
0 7 1 cmd Ljava/lang/String;
0 7 2 expect I
2 4 3 reply I
5 7 3 reply I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cmd
expect
private void toCanonical(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "<"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: aload 0
new java.lang.StringBuilder
dup
ldc "rcpt to: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
sipush 250
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
goto 3
2: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "rcpt to: <"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ">\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
sipush 250
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/net/smtp/SmtpClient;
0 4 1 s Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
public void to(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 1
bipush 10
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 4
1: new java.io.IOException
dup
ldc "Illegal SMTP command"
2: new java.lang.IllegalArgumentException
dup
ldc "Illegal carriage return"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
3: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 6: iconst_0
istore 4
start local 4 7: iconst_0
istore 5
start local 5 8: iconst_0
istore 6
start local 6 9: iconst_0
istore 7
start local 7 10: goto 39
11: StackMap locals: sun.net.smtp.SmtpClient java.lang.String int int int int int int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 8
start local 8 12: iload 6
ifle 22
13: iload 8
bipush 40
if_icmpne 15
14: iinc 6 1
goto 17
15: StackMap locals: int
StackMap stack:
iload 8
bipush 41
if_icmpne 17
16: iinc 6 -1
17: StackMap locals:
StackMap stack:
iload 6
ifne 38
18: iload 5
iload 2
if_icmple 20
19: iconst_1
istore 7
goto 38
20: StackMap locals:
StackMap stack:
iload 4
iconst_1
iadd
istore 2
21: goto 38
StackMap locals:
StackMap stack:
22: iload 8
bipush 40
if_icmpne 24
23: iinc 6 1
goto 38
24: StackMap locals:
StackMap stack:
iload 8
bipush 60
if_icmpne 26
25: iload 4
iconst_1
iadd
dup
istore 5
istore 2
goto 38
26: StackMap locals:
StackMap stack:
iload 8
bipush 62
if_icmpne 28
27: iconst_1
istore 7
goto 38
28: StackMap locals:
StackMap stack:
iload 8
bipush 44
if_icmpne 34
29: iload 5
iload 2
if_icmple 31
30: aload 0
aload 1
iload 2
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.toCanonical:(Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
iload 4
iconst_1
iadd
istore 2
32: iconst_0
istore 7
33: goto 38
34: StackMap locals:
StackMap stack:
iload 8
bipush 32
if_icmple 36
iload 7
ifne 36
35: iload 4
iconst_1
iadd
istore 5
goto 38
36: StackMap locals:
StackMap stack:
iload 2
iload 4
if_icmpne 38
37: iinc 2 1
38: StackMap locals:
StackMap stack:
iinc 4 1
end local 8 39: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmplt 11
40: iload 5
iload 2
if_icmple 42
41: aload 0
aload 1
iload 2
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.toCanonical:(Ljava/lang/String;)V
42: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/net/smtp/SmtpClient;
0 43 1 s Ljava/lang/String;
5 43 2 st I
6 43 3 limit I
7 43 4 pos I
8 43 5 lastnonsp I
9 43 6 parendepth I
10 43 7 ignore Z
12 39 8 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
public void from(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
bipush 10
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpeq 4
1: new java.io.IOException
dup
ldc "Illegal SMTP command"
2: new java.lang.IllegalArgumentException
dup
ldc "Illegal carriage return"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
3: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ldc "<"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
5: aload 0
new java.lang.StringBuilder
dup
ldc "mail from: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
sipush 250
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "mail from: <"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ">\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
sipush 250
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/net/smtp/SmtpClient;
0 9 1 s Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private void openServer(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
1: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
getstatic sun.net.smtp.SmtpClient.DEFAULT_SMTP_PORT:I
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;I)V
2: aload 0
new java.lang.StringBuilder
dup
ldc "helo "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
sipush 250
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/net/smtp/SmtpClient;
0 4 1 host Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
host
public java.io.PrintStream startMessage();
descriptor: ()Ljava/io/PrintStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
ldc "data\r\n"
sipush 354
invokevirtual sun.net.smtp.SmtpClient.issueCommand:(Ljava/lang/String;I)V
1: aload 0
new sun.net.smtp.SmtpPrintStream
dup
aload 0
getfield sun.net.smtp.SmtpClient.serverOutput:Ljava/io/PrintStream;
aload 0
invokespecial sun.net.smtp.SmtpPrintStream.<init>:(Ljava/io/OutputStream;Lsun/net/smtp/SmtpClient;)V
putfield sun.net.smtp.SmtpClient.message:Lsun/net/smtp/SmtpPrintStream;
2: goto 5
StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
3: pop
4: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
getstatic sun.net.smtp.SmtpClient.encoding:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " encoding not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.smtp.SmtpClient.message:Lsun/net/smtp/SmtpPrintStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/net/smtp/SmtpClient;
Exception table:
from to target type
1 2 3 Class java.io.UnsupportedEncodingException
Exceptions:
throws java.io.IOException
void closeMessage();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.smtp.SmtpClient.message:Lsun/net/smtp/SmtpPrintStream;
ifnull 2
1: aload 0
getfield sun.net.smtp.SmtpClient.message:Lsun/net/smtp/SmtpPrintStream;
invokevirtual sun.net.smtp.SmtpPrintStream.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/net/smtp/SmtpClient;
Exceptions:
throws java.io.IOException
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.net.TransferProtocolClient.<init>:()V
1: aload 1
ifnull 6
2: aload 0
aload 1
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
3: aload 0
aload 1
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
4: return
5: StackMap locals: sun.net.smtp.SmtpClient java.lang.String
StackMap stack: java.lang.Exception
pop
6: StackMap locals:
StackMap stack:
aload 0
7: new sun.security.action.GetPropertyAction
dup
ldc "mail.host"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
8: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
9: aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
ifnull 13
10: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
11: return
12: StackMap locals:
StackMap stack: java.lang.Exception
pop
13: StackMap locals:
StackMap stack:
aload 0
ldc "localhost"
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
14: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
15: goto 19
StackMap locals:
StackMap stack: java.lang.Exception
16: pop
17: aload 0
ldc "mailhost"
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
18: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/net/smtp/SmtpClient;
0 20 1 host Ljava/lang/String;
Exception table:
from to target type
2 4 5 Class java.lang.Exception
6 11 12 Class java.lang.Exception
13 15 16 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
host
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial sun.net.smtp.SmtpClient.<init>:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/net/smtp/SmtpClient;
Exceptions:
throws java.io.IOException
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.net.TransferProtocolClient.<init>:()V
1: aload 0
iload 1
invokevirtual sun.net.smtp.SmtpClient.setConnectTimeout:(I)V
2: aload 0
3: new sun.security.action.GetPropertyAction
dup
ldc "mail.host"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
5: aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
ifnull 9
6: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
7: return
8: StackMap locals: sun.net.smtp.SmtpClient int
StackMap stack: java.lang.Exception
pop
9: StackMap locals:
StackMap stack:
aload 0
ldc "localhost"
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
10: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
11: goto 15
StackMap locals:
StackMap stack: java.lang.Exception
12: pop
13: aload 0
ldc "mailhost"
putfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
14: aload 0
aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
invokevirtual sun.net.smtp.SmtpClient.openServer:(Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/net/smtp/SmtpClient;
0 16 1 to I
Exception table:
from to target type
2 7 8 Class java.lang.Exception
9 11 12 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
to
public java.lang.String getMailHost();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.smtp.SmtpClient.mailhost:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/net/smtp/SmtpClient;
java.lang.String getEncoding();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.net.smtp.SmtpClient.encoding:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/net/smtp/SmtpClient;
}
SourceFile: "SmtpClient.java"