2014-02-20 4 views
-1

Я пытаюсь написать программу с помощью java, которая отправит электронное письмо. Я использую JDK 1.6.0_43 Я получаю ошибку java.net.UnknownHostException: mailhost. Мой код выглядит следующим образом:Отправка электронной почты через программу

import java.io.*; 
import java.net.*; 

public class SendMail { 
    public static void main(String[] args) { 
    try { 
    if (args.length >= 1) 
      System.getProperties().put("mail.host", args[0]); 
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("From: "); 
    String from = in.readLine(); 
    System.out.print("To: "); 
    String to = in.readLine(); 
    System.out.print("Subject: "); 
    String subject = in.readLine(); 
    URL u = new URL("mailto:" + to);  
    URLConnection c = u.openConnection(); 
    c.setDoInput(false);     
    c.setDoOutput(true);     
    System.out.println("Connecting..."); 
    System.out.flush();     
    c.connect();       
    PrintWriter out = new PrintWriter(new OutputStreamWriter(c.getOutputStream())); 


    out.println("From: \"" + from + "\" <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">"); 
    out.println("To: " + to); 
    out.println("Subject: " + subject); 
    out.println(); 

    System.out.println("Enter the message. " + "End with a '.' on a line by itself."); 
    String line; 
    for(;;) { 
     line = in.readLine(); 
     if ((line == null) || line.equals(".")) 
      break; 
     out.println(line); 
    } 
    out.close(); 
    System.out.println("Message sent."); 
    System.out.flush(); 
} 
catch (Exception e) { 
    System.err.println(e); 
    System.err.println("Usage: java SendMail [<mailhost>]"); 
    } 
    } 
} 

Как это решить?

+1

Пожалуйста, измените questiong включить трассировку стека, за исключением –

+1

Как насчет включая детали, за исключением для начала ... – John3136

+1

Ошибка очевидна, является 'почтового хоста 'действительный хост? –

ответ

0

сообщение об ошибке говорит все: Usage: java SendMail [<mailhost>]

Вы должны знать имя (или IP-адрес) вашего почтового сервера. Так попробуйте запустить так:

java SendMail smtp.example.com

Смежные вопросы