Java Reference
In-Depth Information
labels
.
add
(
passwordLabel
);
fields
.
add
(
passwordField
);
Box
north
=
Box
.
createHorizontalBox
();
north
.
add
(
Box
.
createHorizontalStrut
(
5
));
north
.
add
(
labels
);
north
.
add
(
fields
);
contentPane
.
add
(
north
,
BorderLayout
.
NORTH
);
message
.
setFont
(
new
Font
(
"Monospaced"
,
Font
.
PLAIN
,
12
));
contentPane
.
add
(
jsp
,
BorderLayout
.
CENTER
);
JPanel
south
=
new
JPanel
();
south
.
setLayout
(
new
FlowLayout
(
FlowLayout
.
CENTER
));
JButton
sendButton
=
new
JButton
(
"Send Message"
);
south
.
add
(
sendButton
);
sendButton
.
addActionListener
(
new
SendAction
());
contentPane
.
add
(
south
,
BorderLayout
.
SOUTH
);
this
.
pack
();
}
private
class
SendAction
implements
ActionListener
{
@Override
public
void
actionPerformed
(
ActionEvent
evt
)
{
try
{
Properties
props
=
new
Properties
();
final
Session
session
=
Session
.
getInstance
(
props
);
final
Message
msg
=
new
MimeMessage
(
session
);
Address
to
=
new
InternetAddress
(
toField
.
getText
());
Address
from
=
new
InternetAddress
(
fromField
.
getText
());
msg
.
setContent
(
message
.
getText
(),
"text/plain"
);
msg
.
setFrom
(
from
);
msg
.
setRecipient
(
Message
.
RecipientType
.
TO
,
to
);
msg
.
setSubject
(
subjectField
.
getText
());
final
String
hostname
=
hostField
.
getText
();
final
String
username
=
usernameField
.
getText
();
final
String
password
=
passwordField
.
getText
();
// Sending a message can take a non-trivial amount of time so
// spawn a thread to handle it.
Runnable
r
=
new
Runnable
()
{
@Override
public
void
run
()
{
Transport
t
=
null
;
try
{
t
=
session
.
getTransport
(
"smtps"
);