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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> javamail 
V
    Опции темы
Bulat
Дата 1.9.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



сидел разбирался в маленькой демке, когда перекинул на свою иде:
Код

   public static void receive() throws IOException
     {
        String readstr = dis.readLine();  
        System.out.println("SMTP respons: " + readstr);
     }


то dis.readLine(); сейчас депрекэйтед, а что вместо него тогда сейчас использовать?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
tux
Дата 1.9.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Пардон, а здесь:
Код

String readstr = dis.readLine();

dis - это что?
PM MAIL Skype GTalk Jabber YIM   Вверх
Bulat
Дата 1.9.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



tux, сорри  smile 
static DataInputStream dis = null;     - получение сообщений



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
tux
Дата 1.9.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Так ведь в javadoc написано:
Цитата

As of JDK 1.1, the preferred way to read lines of text is via the BufferedReader.readLine() method.

То есть, вот этот метод - http://java.sun.com/j2se/1.5.0/docs/api/ja...html#readLine().
PM MAIL Skype GTalk Jabber YIM   Вверх
Tony
Дата 2.9.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Возми DataInput dis=
dis.readLine()

он не депрекэйтед


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Bulat
Дата 5.9.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Это ок.....
вот тут самый простой примерчик, но с такой ошибкой не сталкивался......
Код

package Mail;

import java.util.Properties;

import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;

public class MailTest
{
  static final String ENCODING = "koi8-r";
  static final String FROM = "[email protected]";
  static final String TO = "[email protected]";

  public static void main(String args[]) throws Exception
  {
    Properties mailProps = new Properties();

    mailProps.put("mail.store.protocol","pop3");
    mailProps.put("mail.transport.protocol","smtp");
    mailProps.put("mail.user","myaccount");

    mailProps.put("mail.pop3.host","mail.mydomail.ru");
    mailProps.put("mail.smtp.host","mail.mydomail.ru");

    Session session = Session.getDefaultInstance(mailProps);

    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(FROM));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));

    message.setSubject("Тестовое письмо",ENCODING);
    message.setText("Текст тестового письма",ENCODING);

    Transport.send(message);
  }

}


Код

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
    at Mail.MailTest.main(MailTest.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
erka
Дата 5.9.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.7.2005

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



activation-1.0.2.jar в classpath
PM MAIL   Вверх
Bulat
Дата 12.9.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Цитата(erka @  5.9.2006,  15:25 Найти цитируемый пост)
activation-1.0.2.jar в classpath 

в стандартных я так понимаю его нет, так у меня тоже, не подскажешь где взять?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
y3u
Дата 12.9.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



эхх... когда ж такие вопросы на оффсайтах смотреть будут или у гугла спрашивать ...

оффсайт, читай внимательно, там написано и ссылка дана:

Цитата

Note: You will also need the JavaBeans Activation Framework (JAF) extension that provides the javax.activation package. We suggest you use version 1.1 of JAF, the latest release. 


Это сообщение отредактировал(а) y3u - 12.9.2006, 14:55


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Bulat
Дата 13.9.2006, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



y3u, гугл-то мне как раз и дал только ссылки на подобные посты  smile  и на мой кстати тоже


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Bulat
Дата 2.10.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



добью темку smile 

Код

public class MailSend extends java.awt.Component {
    private java.util.List data = new java.util.ArrayList();

    static final String ENCODING = "koi8-r";
    static final String FROM = "[email protected]";
    static String TO = "";

    public MailSend(java.util.List data) {
        this.data = data;

        sendMail();
    }

    public void sendMail() {

        int size = data.size();
        String mailText = String.valueOf(data.get(size - 1));

        java.util.Properties mailProps = new java.util.Properties();

        mailProps.put("mail.store.protocol","pop3");
        mailProps.put("mail.transport.protocol","smtp");
        mailProps.put("mail.user","myaccount");

        mailProps.put("mail.pop3.host","mail.kazan.ru");
        mailProps.put("mail.smtp.host","mail.kazan.ru");


        javax.mail.Session session = javax.mail.Session.getDefaultInstance(mailProps);
        javax.mail.internet.MimeMessage message = new javax.mail.internet.MimeMessage(session);

        for (int i = 0; i < size - 1; i++) {
            TO = String.valueOf(data.get(i));
            try {
                message.setFrom(new javax.mail.internet.InternetAddress(FROM));
                message.setRecipient(javax.mail.Message.RecipientType.TO, new javax.mail.internet.InternetAddress(TO));

                message.setSubject("Информационное письмо",ENCODING);
                message.setText(mailText, ENCODING);

                javax.mail.Transport.send(message);

                javax.swing.JOptionPane op = new javax.swing.JOptionPane("Сообщение на e-mail " + TO + " успешно отправлено");
                javax.swing.JDialog d = op.createDialog(this, "Сообщение о доставке");
                d.repaint();
                d.setVisible(true);
            } catch (Exception e){
                javax.swing.JOptionPane.showMessageDialog(this, e, "Ошибка", javax.swing.JOptionPane.ERROR_MESSAGE);
            }
        }
    }

}


Вот как тут вместо FROM = "[email protected]" сделать FROM = "ОАО Комтат"?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
kkorsakoff
Дата 2.10.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 14



Вообще-то есть вполне опредленный формат e-mail адресов... какой RFC, извините, не помню.
Ты можешь задать как сам адрес, так и его "описание". Но одно "описание" задать нельзя.
Если писать адрес в таком формате
Код

static final String FROM = "ОАО Комтат <[email protected]>";


то многие почтовые программы отобразят именно "ОАО Комтат", но где-нибудь в полном отображении так же укажут <booker-t...>. Ну хотя думаю, тебе и этого хватитsmile


Это сообщение отредактировал(а) kkorsakoff - 2.10.2006, 17:37
PM MAIL WWW ICQ   Вверх
y3u
Дата 2.10.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kkorsakoff @  2.10.2006,  17:36 Найти цитируемый пост)
какой RFC, извините, не помню.


можно найти тут... блин, оказывается википедия рулит круче гугла!


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Bulat
Дата 3.10.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



kkorsakoff, а как быть с кодировкой? если ее не указывать, то вместо "ОАО КОМТАТ" там каракули, если указать "koi8-r", то сам почтовый домен он не воспринимает нормально


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Bulat
Дата 3.10.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Свой предыдущий вопрос решил. И последнее, для тех кто что-то подобное делал: у меня на отправку одного сообщения затрачивается не менее 10-15 секунд, и в целом если адресов будет порядка 1000, то очень долго получается, так вот может есть вариант как-то оптимизировать код. Или это зависит исключительно от сервера и того какая веб служба там стоит? 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
batigoal
Дата 3.10.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

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



А ты переподключаешься, или шлешь по уже установленному соединению?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
kkorsakoff
Дата 3.10.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 14



Поможет только
1. слать в одной сессии (как сказано batigoal)
2. добавить все адреса в CC или BCC. Письмо уйдет разом. Но там есть свои тонкости, чтобы адресаты друг друга не увидели.
PM MAIL WWW ICQ   Вверх
Bulat
Дата 4.10.2006, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Цитата(batigoal @  3.10.2006,  17:00 Найти цитируемый пост)
уже установленному соединению

угу.

Тут еще такая фишка, что и через типичный Bat по нашему почтовому серверу письма медленно отсылаются, но побыстрее чем у меня.

Цитата(kkorsakoff @  3.10.2006,  19:47 Найти цитируемый пост)
добавить все адреса в CC или BCC. Письмо уйдет разом. Но там есть свои тонкости, чтобы адресаты друг друга не увидели. 

А вот можно поподробнее или хотя бы ссылочку smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
kkorsakoff
Дата 4.10.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 14



При добавлении адресата, указать Message.RecipientType.BCC и всех адресатов добавить туда. 

Код

Message.addRecipients(Message.RecipientType.BCC, Address[] addresses)


Письмо уйдет быстро и одно точно, но я затрудняюсь сказать, что увидят в поле "адресат" все эти пользователи smile  Возможно себя, возможно всех BCC, а возможно "основого адресата", добавленного как Message.RecipientType.TO. Кстати не забудь одного из адресатов добавить как TO.

Это сообщение отредактировал(а) kkorsakoff - 4.10.2006, 13:15
PM MAIL WWW ICQ   Вверх
Bulat
Дата 9.10.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Как тады преобразовать java.util.List data = new java.util.ArrayList() в javax.mail.Address[] addresses? Перепробовал с десяток способов, но каждый раз ошибка smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
y3u
Дата 9.10.2006, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



на эту тему в факу полно информации... Если у тебя в data лежат действительно объекты Address, то делается, к примеру, так:

Код

(Address[])data.toArray(new Address[data.size()]);



--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Bulat
Дата 10.10.2006, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



y3u, так я тоже пробовал
Код

javax.mail.Address[] addresses = (javax.mail.Address[]) data.toArray(new javax.mail.Address[data.size()]);


но
Цитата

Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException
    at java.lang.System.arraycopy(Native Method)
    at java.util.ArrayList.toArray(ArrayList.java:305)
    at MailSender.MailSend.MailSendTest.sendMail(MailSendTest.java:36)
    at MailSender.MailSend.MailSendTest.<init>(MailSendTest.java:20)
    at MailSender.MailInterface.MainForm.ButtonSend.actionPerformed(ButtonSend.java:21)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


сам список заполняется подобным образом
Код

java.util.List data = new java.util.ArrayList();
for (int i = 0; i < rowCount; i++) {
    data.add(tableAddress.getValueAt(i, 0));
}



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
y3u
Дата 10.10.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

tableAddress

это что? приведи более полный код


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Bulat
Дата 10.10.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Ок, по названию может не сразу понятно что таблица адресов:
Код

public class ButtonSend extends java.awt.Component implements java.awt.event.ActionListener {
    private javax.swing.JTextArea mailTextArea;
    private javax.swing.JTable tableAddress;

    public ButtonSend(javax.swing.JTextArea mailTextArea, javax.swing.JTable tableAddress) {
        this.mailTextArea = mailTextArea;
        this.tableAddress = tableAddress;
    }

    public void actionPerformed(java.awt.event.ActionEvent ae) {
        String mailText = mailTextArea.getText();
        int rowCount = tableAddress.getRowCount();
        if ((rowCount > 0) && (!mailText.equals(""))) {
            java.util.List data = new java.util.ArrayList();
            for (int i = 0; i < rowCount; i++) {
                data.add(tableAddress.getValueAt(i, 0));
            }
            new MailSender.MailSend.MailSendTest(data);
        } else if (rowCount == 0) {
            javax.swing.JOptionPane.showMessageDialog(this, "Список адресатов пуст", "Ошибка", javax.swing.JOptionPane.ERROR_MESSAGE);
        } else if (mailText.equals("")) {
            javax.swing.JOptionPane.showMessageDialog(this, "Отсутствует текст письма", "Ошибка", javax.swing.JOptionPane.ERROR_MESSAGE);
        }
    }

}


Вообще, через ТО отправляется и все в прядке, а вот если весь список e-mail адресов переводить в тип javax.mail.Address[] проблема.


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
y3u
Дата 10.10.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а, ну естественно, у тебя в коллекции стринги, а ты кастишь к Address smile (вот почему надо использовать дженерики)

тебе надо делать не 

Код

        for (int i = 0; i < rowCount; i++) {
                data.add(tableAddress.getValueAt(i, 0));
        }


а

Код

        for (int i = 0; i < rowCount; i++) {
                data.add(new InternetAddress(tableAddress.getValueAt(i, 0)));
        }


еще бы я подобные сравнения 
Код

        mailText.equals("")

заменил бы на

Код

        mailText != null && mailText.trim().length > 0




--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Bulat
Дата 11.10.2006, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Цитата(y3u @ 10.10.2006,  11:58)
Код

        for (int i = 0; i < rowCount; i++) {
                data.add(new InternetAddress(tableAddress.getValueAt(i, 0)));
        }


Вот с этого и надо было начинать smile  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Bulat
Дата 17.11.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



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

Цитата

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
    at javax.mail.Transport.send0(Transport.java:169)
    at javax.mail.Transport.send(Transport.java:98)
    at MailSender.MailSend.MailSend.sendMail(MailSend.java:40)
    at MailSender.MailSend.MailSend.<init>(MailSend.java:14)
    at MailSender.MailInterface.MainForm.ButtonSend.actionPerformed(ButtonSend.java:26)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1047)
    ... 30 more



Код

public class MailSend extends java.awt.Component {
    private java.util.List data = new java.util.ArrayList();

    static String MAILTEXT = "";
    static final String ENCODING = "koi8-r";
    static final String FROM = " OAO \"KOMTAT\" <[email protected]>";

    public MailSend(java.util.List data, String mailText) {
        this.data = data;
        MAILTEXT = mailText;

        sendMail();
    }

    public void sendMail() {

        javax.mail.Address[] addresses = (javax.mail.Address[]) data.toArray(new javax.mail.Address[data.size()]);
        java.util.Properties mailProps = new java.util.Properties();

        mailProps.put("mail.store.protocol","pop3");
        mailProps.put("mail.transport.protocol","smtp");
        mailProps.put("mail.user","myaccount");

        mailProps.put("mail.pop3.host","mail.kazan.ru");
        mailProps.put("mail.smtp.host","mail.kazan.ru");

        javax.mail.Session session = javax.mail.Session.getDefaultInstance(mailProps);
        javax.mail.internet.MimeMessage message = new javax.mail.internet.MimeMessage(session);

        try {
            message.setFrom(new javax.mail.internet.InternetAddress(FROM));

            message.addRecipients(javax.mail.Message.RecipientType.BCC, addresses);

            message.setSubject("Информационное письмо",ENCODING);
            message.setText(MAILTEXT, ENCODING);

            javax.mail.Transport.send(message);

            javax.swing.JOptionPane op = new javax.swing.JOptionPane("Рассылка успешно отправлена");
            javax.swing.JDialog d = op.createDialog(this, "Сообщение о доставке");
            d.setVisible(true);
        } catch (Exception e){
            javax.swing.JOptionPane.showMessageDialog(this, e, "Ошибка", javax.swing.JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
        }
    }

}


так то вроде и понятно отчего ошибка, но как обойти, что дописать не знаю smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
kkorsakoff
Дата 19.11.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 14



Тут уже проблема не в java. Твой SMTP сервер не желает отправлять письма на домены вне вашей организации. В принципе можно понять почемуsmile

Варианта три: 
1. найти SMTP сервер, который будет разрешать это делать
2. попросить админа разрешить отправку писем (установив при этом какие-то ограничения, например авторизацию или контроль по ip)
3. разбивать отправку на несколько этапов. Каждый домен (например mail.ru) - коннектишься к почтовому серверу mail.ru, отправляешь письма конкретно на этот домен. И так далее для каждого домена. Узнать адреса почтовых серверов можно при помощи dns (тип записи MX). 
PM MAIL WWW ICQ   Вверх
Bulat
Дата 20.11.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



kkorsakoff, но тот же самый TheBat через наш сервер отправляет, а моя прога нет, вот мне и кажется что все же что-то еще есть.......
А линки никакие не можешь дать по этому поводу....

P.S. гугл не предлагать, я там искал, но по этому поводу ничего конкретного smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
armixx
Дата 9.9.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 16.8.2010

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



Помогите, пожалуйста,  новичку. 
Хочу отправить письма с [email protected] куда-нибудь. Никакого почтового сервера не знаю.
Где взять имя сервера?
PM MAIL   Вверх
Skipy
Дата 9.9.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 16



Цитата(armixx @ 9.9.2010,  14:30)
Помогите, пожалуйста,  новичку. 
Хочу отправить письма с [email protected] куда-нибудь. Никакого почтового сервера не знаю.
Где взять имя сервера?

Очевидно, у провайдера сервиса почты. Т.е. - inbox.ru: http://mail.ru/pages/help/79.html


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
armixx
Дата 7.12.2010, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 16.8.2010

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



А кто-нибудь знает как отправить сообщение с форматированным текстом и картинкой в нём? Например, запихнуть в сообщение текст HTML-файла, но так, чтобы и все <img src... уехали.
PM MAIL   Вверх
kkorsakoff
Дата 8.12.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 14



Что-то вроде
Код

Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "smtp.mymailserver.com");
        props.setProperty("mail.user", "myuser");
        props.setProperty("mail.password", "mypwd");

        Session mailSession = Session.getDefaultInstance(props, null);
        mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setSubject("HTML  mail with images");
        message.setFrom(new InternetAddress("[email protected]"));
        message.addRecipient(Message.RecipientType.TO,
             new InternetAddress("[email protected]"));

        //
        // This HTML mail have to 2 part, the BODY and the embedded image
        //
        MimeMultipart multipart = new MimeMultipart("related");

        // first part  (the html)
        BodyPart messageBodyPart = new MimeBodyPart();
        String htmlText = "<H1>Hello</H1><img src=\"cid:image.gif\">";
        messageBodyPart.setContent(htmlText, "text/html");

        // add it
        multipart.addBodyPart(messageBodyPart);
        
        // second part (the image)
        messageBodyPart = new MimeBodyPart();
        DataSource fds = new FileDataSource
          ("C:\\images\\jht.gif");
        messageBodyPart.setDataHandler(new DataHandler(fds));
        messageBodyPart.setHeader("Content-ID","<image.gif>");

        // add it
        multipart.addBodyPart(messageBodyPart);

        // put everything together
        message.setContent(multipart);

        transport.connect();
        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();


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

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

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


 




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


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

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