AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Problem about JavaMail

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language Programming
View previous topic :: View next topic  
Author Message
mrby
Guest





PostPosted: Thu Apr 29, 2004 4:47 pm    Post subject: Problem about JavaMail Reply with quote



Hi,

I'm just trying to use JavaMail and have a strange problem.
(See the code snippet below)

When running it, the exception error message is:

errorjavax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: localhost,
port: 25;
nested exception is:
java.net.ConnectException: Connection refused

the problem is in the line with //!!!!
If I comment this line out, it works fine.

The purpose of this line to invoke check_server is to
have a check first.

Who can give me some hints?
Thanks much!

================================================
import java.sql.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

/** Class handles sending email messages. */

public class email {

private static String mail_host = null;

public static void main (String[] args) {
mail_host = "mrby.8866.org"; //which is a valid mail server
if ( check_server(mail_host) ) //!!!!!
send();
}

public static void send ()
{
String to = "root@localhost";
String subject = "hello,world";
String total_message = "test email";
String from = "email (AT) def (DOT) com";
String host = mail_host;

Properties props = new Properties();
props.put("mail.smtp.host", host );
Session session = Session.getDefaultInstance(props, null);
try {
// create a message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients( Message.RecipientType.TO,
InternetAddress.parse(to) );
msg.setSubject(subject);
msg.setText(total_message);
Transport.send(msg);
System.out.println(host);
}
catch (MessagingException mex) {
System.out.println("error"+mex.toString());
}
}


// Method to check if the SMTP service on a host is available
private static boolean check_server( String host )
{
boolean flag;
Transport tr = null;

try {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
tr = session.getTransport("smtp");
tr.connect(host,null,null);
flag = true;
tr.close();
}
catch (MessagingException mx) {
flag = false;
}
finally {
try {
if (tr != null) {
tr.close();
}
}
catch (MessagingException mex) {}
}
return flag;
}
}


Back to top
GaryM
Guest





PostPosted: Thu Apr 29, 2004 6:39 pm    Post subject: Re: Problem about JavaMail Reply with quote



"mrby" <bianying (AT) msn (DOT) com> wrote in news:c6rbng$2bo6$1 (AT) mail (DOT) cn99.com:

Quote:
Who can give me some hints?
Thanks much!



I think you should not call tr.connect(host, null, null). Put the
host in the session, then call tr.connect(). Reason? Not 100% on
this, but I think the connect(String, String, String) requires all 3
params or 3 nulls (which prompts the underlying code to do a
different connect). I don't think it can handle the host, null, null
and is defaulting to the Session which defaults to "localhost" if
undefined. Note in your example there is no "mail.smtp.host" property
defined at that point in the code. You do this only in send().

There are a couple of things with this example you could change that
would make your life easier. check_server does not need the host as a
parm, as that parm is a class variable and is visible to all methods.
Likewise no need for a copy of it to be made in the send() method.

I would consider making the Session instance an instance variable and
initializing it in the constructor/initializer accordingly.

HTH,

Gary

Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.