wood burning stoves 2.0*
The moose likes Other JSE/JEE APIs and the fly likes Java mail Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Other JSE/JEE APIs
Bookmark "Java mail" Watch "Java mail" New topic
Author

Java mail

Archana Moorthy
Greenhorn

Joined: Aug 23, 2004
Posts: 6
Hai friends,
I get the Following error while using Java Mail Program.

Program:

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;
import javax.mail.*;
import javax.mail.internet.*;

public class msgsend
{
public static void main(String[] argv)
{
new msgsend(argv);
}
public msgsend(String[] argv)
{
String to="abinamoorthy@yahoo.com", subject ="Hai", from ="archanamoorthy@yahoo.com", cc = null, bcc = null, url = null;
String mailhost = "mail.yahoo.com"; String mailer = "msgsend";
String protocol = "smtp", host = "mail.yahoo.com" , user = "archana", password = "null";
String record = null;
// name of folder in which to record mail
boolean debug = false;
BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
int optind;
for (optind = 0; optind < argv.length;optind++)
{
if (argv[optind].equals("-T")) { protocol = argv[++optind]; }
else if (argv[optind].equals("-H")) { host = argv[++optind]; }
else if (argv[optind].equals("-U")) { user = argv[++optind]; }
else if (argv[optind].equals("-P")) { password = argv[++optind]; }
else if (argv[optind].equals("-M")) { mailhost = argv[++optind]; }
else if (argv[optind].equals("-f")) { record = argv[++optind]; }
else if (argv[optind].equals("-s")) { subject = argv[++optind]; }
else if (argv[optind].equals("-o")) { from = argv[++optind]; }
else if (argv[optind].equals("-c")) { cc = argv[++optind]; }
else if (argv[optind].equals("-b")) { bcc = argv[++optind]; }
else if (argv[optind].equals("-L")) { url = argv[++optind]; }
else if (argv[optind].equals("-d")) { debug = true; }
else if (argv[optind].equals("--")) { optind++; break; }
else if (argv[optind].startsWith("-")) {
System.out.println("Usage: msgsend [[-L store-url] | [-T prot] [-H host] [-U user][-P passwd]]");
System.out.println("\t[-s subject] [-o from-address] [-c cc-addresses] [-b bcc-addresses]");
System.out.println("\t[-f record-mailbox] [-M transport-host] [-d] [address]");
System.exit(1); }
else
{ break; }
}
try
{ if (optind < argv.length)
{
// XXX - concatenate all remaining arguments
to = argv[optind];
System.out.println("To: " + to);
}
else
{ System.out.print("To: ");
System.out.flush();
to = in.readLine();
}
if (subject == null)
{
System.out.print("Subject: ");
System.out.flush();
subject = in.readLine();
}
else
{
System.out.println("Subject: " + subject);
}
Properties props = System.getProperties();
// XXX - could use Session.getTransport() and Transport.connect()
// XXX - assume we're using SMTP

if (mailhost != null) props.put("mail.smtp.host", mailhost);
Session session = Session.getInstance(props, null);
if (debug) session.setDebug(true);
// construct the message
Message msg = new MimeMessage(session);
if (from != null)
msg.setFrom(new InternetAddress(from));
else
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to,false));
if (cc != null)
msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc, false));
if (bcc != null)
msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc,false));
msg.setSubject(subject);
collect(in, msg);
msg.setHeader("X-Mailer", mailer);
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("\nMail was sent successfully.");
// Keep a copy, if requested.
if (record != null)
{
// Get a Store object
Store store = null;
if (url != null)
{
URLName urln = new URLName(url);
store = session.getStore(urln);
store.connect();
}
else
{
if (protocol != null)
store = session.getStore(protocol);
else
store = session.getStore();
// Connect
if (host != null || user != null || password != null)
store.connect(host,user, password);
else
store.connect();
}
// Get record Folder. Create if it does not exist.
Folder folder = store.getFolder(record);
if (folder == null)
{
System.err.println("Can't get record folder.");
System.exit(1);
}
if (!folder.exists())
folder.create(Folder.HOLDS_MESSAGES);
Message[] msgs = new Message[1];
msgs[0] = msg;
folder.appendMessages(msgs);
System.out.println("Mail was recorded successfully.");
}
}
catch (Exception e)
{ e.printStackTrace(); }
}
public void collect(BufferedReader in, Message msg)throws MessagingException, IOException
{
msg.setText("Hello");
}

}



Error:
To: bina@yahoo.com
Subject: Hai
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Unknown SMTP host: mail.yahoo.com;
nested exception is:
java.net.UnknownHostException: mail.yahoo.com
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at msgsend.<init>(msgsend.java:91)
at msgsend.main(msgsend.java:12)

Can Anyone tell me what the error is. ping www.mail.yahoo.com or telnet is also not working.

Archana
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

"mail.yahoo.com" is an unknown SMTP host. If you weant to use JavaMail make sure you know the IP or URL address of the server you want to use. In the case of Yahoo you'll need to get in touch with them or search for some FAQs to get an actual server name you can use. I'd be very surprised if mail.yahoo.com was the actual host running the server - its more likely to be a URL which redirects to a specific server depending on load.


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Archana Moorthy
Greenhorn

Joined: Aug 23, 2004
Posts: 6
Hi Paul Sturrock ,
Thanks for your Reply. I worked the same code at my home PC where i have a direct internet connection And there establishes a connection to the yahoo server there. But in my college we have a LAN internet connection. Is there a problem due to it???

Archana S
Shashank Agarwal
Ranch Hand

Joined: May 20, 2004
Posts: 105
Hey, I also have a jsp which does not deliver mail to yahoo. In fact, i tried sending it to my indiatimes account but there also it failed. Then i gave up and stopped trying.
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

I would imagine your college is using a proxy server somewhere. And that will most probably only support HTTP, so JavaMail can't communicate with the yahoo mail servers. Have a word with your network admin to check this. You might consider using your college's SMTP server if you can - since this won't have these problems.
[ August 24, 2004: Message edited by: Paul Sturrock ]
Archana Moorthy
Greenhorn

Joined: Aug 23, 2004
Posts: 6
Hi Paul Sturrock,
I enquired the Admin and he says that the server supports SMTP. I think that the connection never goes to the server from java mail. I just looks in the local system and says the SMPT host is unrachable. What do you think?

Archana S
Jacky Lu
Greenhorn

Joined: Aug 28, 2004
Posts: 1
Why don't try to connect smtp.mail.yahoo.com with your user name/password provided?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Java mail
 
Similar Threads
javax.mail.MessagingException: Connection dropped by server?; Error
javamail : Could not connect to SMTP host
Java mail
How To Turn On the IIS SMTP Server?
Need some help me java mail-smtp