Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Отправка сообщений с атачментом с помощью org.apac


Автор: Djek 5.5.2007, 10:22
При отправки сообщения с атачментом с помошью org.apache.commons.mail у атачмента пропадает расширение, и когда письмо приходит на мыло при попытке попытке открыть вложение открываеться "Открыть с помощью". Как этого избежать???
или Как надо периписать класс отсылки сообщений? Может надо юзать что-нибудь другое...
Спасибо!

Автор: kkorsakoff 5.5.2007, 21:08
Приведите код вложения аттачмента.

Автор: Hidrag 5.5.2007, 21:53
Я так отсылал:
Код

            EmailAttachment attachment = new EmailAttachment();
            attachment.setPath(fileName);
            attachment.setDisposition(EmailAttachment.ATTACHMENT);
            attachment.setDescription(fileName);
            attachment.setName(fileName);
            
            // Create the email message
            MultiPartEmail email = new MultiPartEmail();
            email.setHostName(p.getMailHostName());
            email.setSmtpPort(p.getMailSmtpPort());
            email.setAuthentication(p.getMailLogin(),p.getMailPass());
            email.addTo(p.getMailTo());
            email.setFrom(p.getMailFrom());
            email.setSubject("Abonent information");
            email.setMsg("Abonent information");
            
            // add the attachment
            email.attach(attachment);
            // send the email
            email.send();

и все приходило как надо. Здесь p - это класс с настройками что возвращают его методы думаю понятно, да и еще... отсылал с рамблеровского ящика, если это на что то влияет.

Автор: Djek 7.5.2007, 10:13
Я отправляю вот так, вроде не чем не отличаеться... 
Код

fileOut = new FileOutputStream(FileExcel.getPath());
wb.write(fileOut);
fileOut.close();
       
EmailAttachment attachment = new EmailAttachment();
String pathToFile = FileExcel.getPath();
attachment.setPath(pathToFile);
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Отчёт");
attachment.setName("Отчёт");
        
    
 // Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName(mailHost);
email.addTo(SendTo, "");
    
email.setFrom(emailSender, nameSender);
email.setSubject(mailSubject);
email.setMsg(mailMsg+"\n\n");
           
// add the attachment
email.attach(attachment);
        
// send the email
email.send();
          
if (FileExcel.exists())
{
   FileExcel.delete();
}

У меня формируется Excel-отчёт сохраняется на диск, потом атачиться к сообщению и отправляется, после отправки файл удаляеться.
У атачмента не только расширение пропадает, но даже имя файла меняется на ерунду какую-то...

Автор: LSD 7.5.2007, 11:24
У тебя наверное файл по русски называется?

Автор: Djek 7.5.2007, 11:28
Имя файлов числовое. Например: 48145344.xls или 48145344_1.xls

Автор: Djek 10.5.2007, 09:02
Может я скачал какую-нить триальную версию org.apache.commons.mail...  Можете дать ссылку на org.apache.commons.mail 

Автор: kkorsakoff 10.5.2007, 19:09
А имя то все-таки русское attachment.setName("Отчёт");

У меня шлется вот так

Код

email.attach(new ByteArrayDataSource(data, dataMimeType), attachmentName, "Attachment", EmailAttachment.ATTACHMENT);


То есть я прикрепляю не файл, а байтовый массив, но сути то это не меняет

Попробуй использовать только латиницу в имени вложения

Автор: Djek 11.5.2007, 11:19
Огромное спасибо!! Изменил attachment.setName("Отчёт") на attachment.setName("Report.xls") и теперь всё приходит как надо..   smile 
Всех благодарю за помощь..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)