Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SendMail, помогите начинаюшему с сетью.. 
:(
    Опции темы
polosatij
  Дата 14.12.2004, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



народ.. есть такой код..

Код

package syncronized;

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

/**
* This program sends e-mail using a mailto: URL
**/
public class SendMail {
 public static void main(String[] args) {
   try {
       System.getProperties().put("http://www.1und1.com", ""); // что здесь должно передаваться в качестве 2-ого параметра?
     

     String from = "[email protected]";
     String to= "[email protected]";
     String subject= "only for Babs =)";
     
     // Establish a network connection for sending mail
     URL u = new URL("mailto:" + to);      // Create a mailto: URL
     URLConnection c = u.openConnection(); // Create a URLConnection for it
     c.setDoInput(false);                  // Specify no input from this URL
     c.setDoOutput(true);                  // Specify we'll do output
     System.out.println("Connecting...");  // Tell the user what's happening
     System.out.flush();                   // Tell them right now
     c.connect();                          // Connect to mail host
     PrintWriter out =                     // Get output stream to mail host
       new PrintWriter(new OutputStreamWriter(c.getOutputStream()));

     // Write out mail headers.  Don't let users fake the From address
     out.println("From: \"" + from + "\" <" +
                 System.getProperty("m35008958-4") + "@" +
                 InetAddress.getLocalHost().getHostName() + ">"); // m35008958-4 -экаунт на сервере..
     out.println("To: " + to);
     out.println("Subject: " + subject);
     out.println();  // blank line to end the list of headers

     // Now ask the user to enter the body of the message
     System.out.println("Enter the message. " +
                        "End with a '.' on a line by itself.");
     // Read message line by line and send it out.

       out.println(subject);

     // Close the stream to terminate the message
     out.close();
     // Tell the user it was successfully sent.
     System.out.println("Message sent.");
     System.out.flush();
   }
   catch (Exception e) {
     System.err.println(e);
     System.err.println("Usage: java SendMail [<mailhost>]");
   }
 }
}




при выполнении:

Connecting...

java.net.UnknownHostException: mailhost
Usage: java SendMail [<mailhost>]

где.. что неправильно?
а как пассворд задать? где? smile

или письмо напрямую от меня будет послано?



--------------------
PM   Вверх
AntonSaburov
Дата 14.12.2004, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



По-моему ты куда-то не туда полез. Посмотри JavaMail
PM MAIL WWW ICQ   Вверх
polosatij
Дата 14.12.2004, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: нет
Всего: 8



пасиба =)

нашёл.. импортировал..

НО.. smile


java.lang.NoClassDefFoundError: javax/activation/DataSource
at sendEmail.SendMail.send(SendMail.java:23)
at sendEmail.Main.main(Main.java:45)
Exception in thread "main"

Код

 public static void main(String[] args) {
   //Main main = new Main();
   //main.start();
   SendMail sendMail= new SendMail();
   String []arg= new String[]{"http://1und1.com", "[email protected]", "[email protected]"};
   try{
     sendMail.send(arg);
   }catch(Exception ex) {
     ex.printStackTrace();
   }
 }

.....

package sendEmail;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SendMail {
 public void send (String args[]) throws Exception {
   String host = args[0];
   String from = args[1];
   String to = args[2];

   // Get system properties
   Properties props = System.getProperties();

   // Setup mail server
   props.put("mail.smtp.host", host);

   // Get session
   Session session = Session.getDefaultInstance(props, null);

   // Define message
   MimeMessage message = new MimeMessage(session); // <--- здесь бросается исключение!!! 23 строка

   // Set the from address
   message.setFrom(new InternetAddress(from));

   // Set the to address
   message.addRecipient(Message.RecipientType.TO,
     new InternetAddress(to));

   // Set the subject
   message.setSubject("Hello JavaMail");

   // Set the content
   message.setText("Welcome to JavaMail");

   // Send message
   Transport.send(message);
 }

}


что я делаю неправильно?


--------------------
PM   Вверх
Domestic Cat
Дата 15.12.2004, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



На classpath'е должны быть соответствующие библиотеки - JavaMail и JAF. Или положи их в jre/lib/ext.


--------------------

PM   Вверх
Andyb
Дата 22.12.2004, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 7.6.2004
Где: Lille, France

Репутация: 1
Всего: 5



Можно ещё так
Код

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;


public class Mail
{  
  public static void main(String[] args)
  {  
     JFrame frame = new MailFrame();
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocationRelativeTo(null);
     frame.show();
  }
}

/
class MailFrame extends JFrame
{  
  public MailFrame()
  {  
     setSize(WIDTH, HEIGHT);
     setTitle("MailTest");

     getContentPane().setLayout(new GridBagLayout());

     GridBagConstraints gbc = new GridBagConstraints();
     gbc.fill = GridBagConstraints.HORIZONTAL;
     gbc.weightx = 0;
     gbc.weighty = 0;

     gbc.weightx = 0;
     add(new JLabel("From:"), gbc, 0, 0, 1, 1);
     gbc.weightx = 100;
     from = new JTextField(20);
     from.setText("[email protected]");
     add(from, gbc, 1, 0, 1, 1);

     gbc.weightx = 0;
     add(new JLabel("To:"), gbc, 0, 1, 1, 1);
     gbc.weightx = 100;
     to = new JTextField(20);
     to.setText("[email protected]");
     add(to, gbc, 1, 1, 1, 1);

     gbc.weightx = 0;
     add(new JLabel("SMTP server:"), gbc, 0, 2, 1, 1);
     gbc.weightx = 100;
     smtpServer = new JTextField(20);
     smtpServer.setText("XX1.XXX.net");
     add(smtpServer, gbc, 1, 2, 1, 1);

     gbc.fill = GridBagConstraints.BOTH;
     gbc.weighty = 100;
     message = new JTextArea();
     add(new JScrollPane(message), gbc, 0, 3, 2, 1);

     communication = new JTextArea();
     add(new JScrollPane(communication), gbc, 0, 4, 2, 1);

     gbc.weighty = 0;
     JButton sendButton = new JButton("Send");
     sendButton.addActionListener(new
        ActionListener()
        {
           public void actionPerformed(ActionEvent evt)
           {  
              new
                 Thread()
                 {
                    public void run()
                    {  
                       sendMail();
                    }
                 }.start();
           }            
        });
     JPanel buttonPanel = new JPanel();
     buttonPanel.add(sendButton);
     add(buttonPanel, gbc, 0, 5, 2, 1);
  }

 
  private void add(Component c, GridBagConstraints gbc,
     int x, int y, int w, int h)
  {  
     gbc.gridx = x;
     gbc.gridy = y;
     gbc.gridwidth = w;
     gbc.gridheight = h;
     getContentPane().add(c, gbc);
  }

 
  public void sendMail()
  {  
     try
     {  
         InetAddress ia = InetAddress.getLocalHost();
        Socket s = new Socket(smtpServer.getText(), 25);
        out = new PrintWriter(s.getOutputStream());
        in = new BufferedReader(new
           InputStreamReader(s.getInputStream()));

        String hostName
           = InetAddress.getLocalHost().getHostName();

        receive();
        send("HELO " + hostName);
        receive();
        send("MAIL FROM: <" + from.getText() + ">");
        receive();
        send("RCPT TO: <" + to.getText() + ">");
        receive();
        send("DATA");
        receive();
        StringTokenizer tokenizer = new StringTokenizer(
           message.getText(), "\n");
        while (tokenizer.hasMoreTokens())
           send(tokenizer.nextToken());
        send(".");
        receive();
       s.close();
     
     }
     catch (IOException exception)
     {  
        communication.append("Error: " + exception);
     }
  }


  public void send(String s) throws IOException
  {  
     communication.append(s);
     communication.append("\n");
     out.print(s);
     out.print("\r\n");
     out.flush();
  }

 
  public void receive() throws IOException
  {
     String line = in.readLine();
     if (line != null)
     {
        communication.append(line);
        communication.append("\n");
     }
  }

  private BufferedReader in;
  private PrintWriter out;
  private JTextField from;
  private JTextField to;
  private JTextField smtpServer;
  private JTextArea message;
  private JTextArea communication;

  public static final int WIDTH = 300;
  public static final int HEIGHT = 300;  
}




Это сообщение отредактировал(а) Domestic Cat - 23.12.2004, 09:11
--------------------
 Большинство наших ошибок происходит из-за невнимательности.
PM ICQ   Вверх
Andyb
Дата 23.12.2004, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 7.6.2004
Где: Lille, France

Репутация: 1
Всего: 5



только просьба моё мыло не использовть
--------------------
 Большинство наших ошибок происходит из-за невнимательности.
PM ICQ   Вверх
Domestic Cat
Дата 23.12.2004, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Хто ж открытым текстом емейл свой дает. Я исправил, но для сведения - сам ведь мог исправить,
вверху кнопочки там есть (прямоугольные, синие).


--------------------

PM   Вверх
Zandr
Дата 23.12.2004, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: нет
Всего: 13



Commons Email - стоит посмотреть. Для отправки электронных писем разной сложности. Только я что-то недопонял - где download? И на какой стадии у них этот проект... Кто юзал - откликнитесь smile
PM MAIL   Вверх
AntonSaburov
Дата 23.12.2004, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Зайди в CVS repository - там исходники лежат. Скачай и собери. Там файлов всего ничего. Или закачай Ant собери с его помощью (благо build.xml там есть).
PM MAIL WWW ICQ   Вверх
Andyb
Дата 24.12.2004, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 7.6.2004
Где: Lille, France

Репутация: 1
Всего: 5



Цитата
Domestic Cat ...но для сведения - сам ведь мог исправить,
вверху кнопочки там есть (прямоугольные, синие).

Спасибо большое!!!
smile

Это сообщение отредактировал(а) Andyb - 24.12.2004, 11:20
--------------------
 Большинство наших ошибок происходит из-за невнимательности.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.