Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / SimpleEmail в commons-email 1.2 не хочет работать / 9 сообщений из 9, страница 1 из 1
19.10.2010, 15:28:04
    #36907782
RRR_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
Решил тут, наконец, начать разбираться с простейшей отправкой по электронной почте.

В почте на джаве я пока чайник. На дельфях когда-то писал, но это "не считается"...

Прочитал, что помимо JavaMail есть commons-email и там все очень просто (что мне пока, вобщем-то, и надо - сформировать из программы список документов и отправить письмо с вложением). Скачал commons-email 1.2. Подключил к проекту.

Запустил и получил ругань на первой же строчке
Код: plaintext
SimpleEmail email =  new  SimpleEmail();

Ругается java.lang.NoClassDefFoundError: javax/mail/Message (так на меня уже давно никто не ругался)

Я так понимаю, что не хватает еще каких-то библиотек. Значит, commons-email 1.2 - не самодостаточная штука?
...
Рейтинг: 0 / 0
19.10.2010, 15:32:45
    #36907807
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
Та вы издеваетесь. Открываем страницу проекта и первым же предложением
авторCommons Email aims to provide a API for sending email. It is built on top of the Java Mail API , which it aims to simplify.
...
Рейтинг: 0 / 0
19.10.2010, 15:42:26
    #36907851
RRR_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
BlazkowiczТа вы издеваетесь. Открываем страницу проекта и первым же предложением
авторCommons Email aims to provide a API for sending email. It is built on top of the Java Mail API , which it aims to simplify.

Да стыдно мне, стыдно... Хотя, когда в пяти направлениях на четырех программных языках одновременно копаешь, то не только английский забываешь, но и русский...

Спасибо, все заработало...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
27.11.2012, 22:16:06
    #38055565
_nautilus_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
Доброго дня.

Есть проблема с SimpleEmail.
Добавил в проект activation.jar, mail.jar, commons-email-1.2.jar.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    	try
    	{
    	  SimpleEmail email = new SimpleEmail();
    	  email.setHostName("smtp.mail.ru");
    	  email.setSmtpPort(25);
    	  email.setCharset("UTF8");
             email.setAuthenticator(new DefaultAuthenticator("****@mail.ru", password));
    	  email.setFrom("***@mail.ru");
    	  email.setSubject("1");
    	  email.setMsg("2");
    	  email.addTo("****@mail.ru");
             email.send();    	  
    	}    	
	catch (EmailException mex) 
	{
	    String mes = mex.getMessage();
	}



При выполнении кода получаю следующую ошибку: Sending the email to the following server failed : smtp.mail.ru:25

Порты пробовал 25, 587, 2525. telnet smtp.mail.ru 25 отрабатывает нормально и пишет Ready. Файрвола нет.

Как думаете, в чем может быть проблема?
...
Рейтинг: 0 / 0
28.11.2012, 04:43:41
    #38055715
genya-123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
_nautilus_, Помнится, при отправке писем через телнет, используя, mail.ru необходимо было строку пароля шифровать алгоритмом base64. Попробуй пароль зашифруй, напрмер, на этом сайте http://www.base64.ru/ и вставь в свою прогу уже зашифрованны пароль...
...
Рейтинг: 0 / 0
28.11.2012, 04:46:34
    #38055717
genya-123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
_nautilus_, Кстати, было бы веселее, если бы ты ответы сервера выводил... Потому что сервер отвечает на каждую твою команду и пишет все свои замечания и предложения, включая подробный текст ошибок...
...
Рейтинг: 0 / 0
28.11.2012, 05:42:27
    #38055730
genya-123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
_nautilus_,
Вот простейший пример отправки письма с вложением, только при помощи библиотеки JavaMail. Здесь необходимо вколотить твой пароль и имя пользователя, а также имя файла, который отправится на почтовый ящик... Ну и библиотеки подключить (JavaMail) http://www.oracle.com/technetwork/java/javamail/index-138643.html

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
package Main;
import java.util.*;
import javax.activation.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
 
public class SendMailUsage {
 
    public static void main(String[] args) {
 
        // Сюда необходимо подставить адрес получателя сообщения
        String to = "derben-e@mail.ru";
        String from = "derben-e@mail.ru";
        // Сюда необходимо подставить SMTP сервер, используемый для отправки
        String host = "smtp.mail.ru";
 
        // Создание свойств, получение сессии
        Properties props = new Properties();
 
        // При использовании статического метода Transport.send()
        // необходимо указать через какой хост будет передано сообщение
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");
        // Включение debug-режима
       // props.put("mail.debug", "true");
 
        // Получение сессии
        Session session = Session.getInstance(props);
 
        try {
            // Получение объекта транспорта для передачи электронного сообщения
            Transport bus = session.getTransport("smtp");
 
            // Устанавливаем соединение один раз
            // Метод Transport.send() отсоединяется после каждой отправки            
           // bus.connect();
            // Обычно для SMTP сервера необходимо указать логин и пароль(не шифрованный)
            bus.connect("smtp.mail.ru", "myname", "mypass");
 
            // Создание объекта сообщения
            Message msg = new MimeMessage(session);
 
            // Установка атрибутов сообщения
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = {new InternetAddress(to)};
            msg.setRecipients(Message.RecipientType.TO, address);
            // Парсинг списка адресов разделённых пробелами. Строгий синтаксис
            msg.setRecipients(Message.RecipientType.CC,
                                InternetAddress.parse(to, true));
            // Парсинг списка адресов разделённых пробелами. Более мягкий синтаксис.
            msg.setRecipients(Message.RecipientType.BCC,
                                InternetAddress.parse(to, false));
 
            msg.setSubject("Тест отправки E-Mail с помощью Java");
            msg.setSentDate(new Date());
 
 
            setFileAsAttachment(msg, "001_2012_57_22_08_57_07.dt");
            msg.saveChanges();
            bus.sendMessage(msg, address);
 
            bus.close();
 
        }
        catch (MessagingException mex) {
            // Печать информации обо всех возможных возникших исключениях
            mex.printStackTrace();
            // Получение вложенного исключения
            while (mex.getNextException() != null) {
                // Получение следующего исключения в цепочке
                Exception ex = mex.getNextException();
                ex.printStackTrace();
                if (!(ex instanceof MessagingException)) break;
                else mex = (MessagingException)ex;
            }
        }
    }
 
  
    // Прикрепление файла в качестве вложения. Используется JAF FileDataSource.
    public static void setFileAsAttachment(Message msg, String filename)
             throws MessagingException {
 
        // Создание и заполнение первой части
        MimeBodyPart p1 = new MimeBodyPart();
        p1.setText("This is part one of a test multipart e-mail." +
                    "The second part is file as an attachment");
 
        // Создание второй части
        MimeBodyPart p2 = new MimeBodyPart();
 
        // Добавление файла во вторую часть
        FileDataSource fds = new FileDataSource(filename);
        p2.setDataHandler(new DataHandler(fds));
        p2.setFileName(fds.getName());
 
        // Создание экземпляра класса Multipart. Добавление частей сообщения в него.
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(p1);
        mp.addBodyPart(p2);
 
        // Установка экземпляра класса Multipart в качестве контента документа 
        msg.setContent(mp);
    }
...
Рейтинг: 0 / 0
28.11.2012, 17:23:07
    #38056756
_nautilus_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
genya-123_nautilus_, Помнится, при отправке писем через телнет, используя, mail.ru необходимо было строку пароля шифровать алгоритмом base64. Попробуй пароль зашифруй, напрмер, на этом сайте http://www.base64.ru/ и вставь в свою прогу уже зашифрованны пароль...
Без разницы. Пишет: Could not connect to SMTP host: smtp.mail.ru, port: 25
...
Рейтинг: 0 / 0
28.11.2012, 17:25:45
    #38056761
_nautilus_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleEmail в commons-email 1.2 не хочет работать
genya-123 // Обычно для SMTP сервера необходимо указать логин и пароль(не шифрованный)
Код: java
1.
bus.connect("smtp.mail.ru", "myname", "mypass");



Спотыкается на этой строке. Я так понимаю в качестве mypass нужно указать явно пароль, а вместо myname имя почты, т.е. если почта derben-e@mail.ru, то указывать нужно derben-e? Хотя впрочем и так, и так не работает.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / SimpleEmail в commons-email 1.2 не хочет работать / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]