Java Reference
In-Depth Information
public
static
void
main
(
String
[]
args
)
{
if
(
args
.
length
==
0
)
{
System
.
err
.
println
(
"Usage: java SearchClient protocol://username@host/foldername"
);
return
;
}
URLName
server
=
new
URLName
(
args
[
0
]);
Folder
folder
=
null
;
try
{
Session
session
=
Session
.
getInstance
(
new
Properties
(),
new
MailAuthenticator
(
server
.
getUsername
()));
// Connect to the server and open the folder
folder
=
session
.
getFolder
(
server
);
if
(
folder
==
null
)
{
System
.
out
.
println
(
"Folder "
+
server
.
getFile
()
+
" not found."
);
System
.
exit
(
1
);
}
folder
.
open
(
Folder
.
READ_ONLY
);
SearchTerm
term
=
null
;
if
(
args
.
length
>
1
)
{
SearchTerm
[]
terms
=
new
SearchTerm
[
args
.
length
-
1
];
for
(
int
i
=
1
;
i
<
args
.
length
;
i
++)
{
terms
[
i
-
1
]
=
new
FromTerm
(
new
InternetAddress
(
args
[
i
]));
}
if
(
terms
.
length
>
1
)
term
=
new
OrTerm
(
terms
);
else
term
=
terms
[
0
];
}
// Get the messages from the server
Message
[]
messages
;
if
(
term
==
null
)
{
messages
=
folder
.
getMessages
();
}
else
{
messages
=
folder
.
search
(
term
);
}
for
(
int
i
=
0
;
i
<
messages
.
length
;
i
++)
{
System
.
out
.
println
(
"------------ Message "
+
(
i
+
1
)
+
" ------------"
);
// Print message headers
@SuppressWarnings
(
"unchecked"
)
Enumeration
<
Header
>
headers
=
messages
[
i
].
getAllHeaders
();
while
(
headers
.
hasMoreElements
())
{
Header
h
=
headers
.
nextElement
();
System
.
out
.
println
(
h
.
getName
()
+
": "
+
h
.
getValue
());
}
System
.
out
.
println
();