folder Tahribat.com Forumları
linefolder Java
linefolder Javax.Mail Vs Outlook , Unnamedattachments.Dat Sorunu



Javax.Mail Vs Outlook , Unnamedattachments.Dat Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    Javax.Mail kullanarak yazdığım ufak bir kod blogu var. Bu blogu kullanarak mail attırıyorum. Sıkıntısız olarak mailler gidiyor. Spama düşme durumu vs yok. 

    Sorun şurada başlıyor. Gönderdiğim maili outlook uygulaması kullanan birisi açtığında tüm ekler, unnamedAttachment1.dat unnamedAttachment2.dat vs gibi isilendirerek gösteriyor. Aynı maili web uygulaması üzerinden açtığımda( internet explorer kullanarak mail sunucusuna bağlandığımı düşünün) ekler düzgün bir biçimde görünüyor. İnternette araştırdım biraz TNEF paketi düzgün oluşturulmadığı için falan yazmışlar ama java ile nasıl oluşturulur bilemedim. (https://support.microsoft.com/tr-tr/help/278061/email-received-from-a-sender-using-outlook-includes-a-winmail-dat-atta)

    daha sonra başka bir konuda exchange üzerinde bir ayardan bahsetmişler ama cpanel de bu ayarı yapacak bir yer bulamadım. (http://msexchangeguru.com/2013/10/09/winmail/)

    Sonuç olarak avuçladım kendimi :D 

    Bu sıkıntıyı nasıl çözeriz, daha önce başına gelen var mı?


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam kodunu da paylaşır mısın ? Android de böyle birşey yapmıştım daha önce . Bahsettiğin sorun ile hiç karşılaşmadım. Kodlarına bakalım


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek
    		Properties properties = System.getProperties();
    		properties.setProperty("mail.smtp.host", host);
    		properties.setProperty("mail.smtp.user", from);
    		
    		properties.setProperty("mail.smtp.auth", "true");
    		properties.setProperty("mail.smtp.port", "25");
    
    		SmtpAuthenticator authentication = new SmtpAuthenticator();
    		// Get the default Session object.
    		Session session = Session.getDefaultInstance(properties, authentication);
    
    		  try {
    		         MimeMessage message = new MimeMessage(session);
    		         message.setFrom(new InternetAddress(from));
    		         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    		         message.setSubject(" Fiyat Teklifi");
    		         BodyPart messageBodyPart = new MimeBodyPart();
    		         messageBodyPart.setText("Teklif Dosyası Ektedir.");
    		         Multipart multipart = new MimeMultipart();
    		         multipart.addBodyPart(messageBodyPart);
    		         for (ProjeEkliDosya teklifDosyasi : proje.getTeklifDosyalari()) {
    		        	 messageBodyPart = new MimeBodyPart();
    		        	 String filename =  new File(".").getCanonicalPath()  + "\\attachmentFiles\\" +teklifDosyasi.getEkAdi();
    		        	 DataSource source = new FileDataSource(filename) {
    		        		 public String getContentType() {
    		        			 return "application/octet-stream";
    		        		 }
    		        	 };
    		        	 messageBodyPart.setDataHandler(new DataHandler(source));
    		        	 messageBodyPart.setFileName(ekAdiDuzenle(teklifDosyasi.getEkAdi()));
    		        	 multipart.addBodyPart(messageBodyPart);
    		         }
    		         // Send the complete message parts
    		         message.setContent(multipart );
    		         Transport.send(message);
    		         System.out.println("send mail : " + to);
    		      }catch (Exception e) {
    		    	  e.printStackTrace();
    //		    	  loggerService.error(e);
    		      }
    		return true;
    		
    	

    kod böyle hacı (: 

    sıkıntı 

    DataSource source = new FileDataSource(filename) {

            public String getContentType() {

            return "application/octet-stream";

            }

            };

    şu kısımda bu kısmı text plan vs yapınca outlook da farklı görünüyor. octet stream yemiyor ama bende 


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    suraya bakar misin hocam

     

    https://stackoverflow.com/a/20842646

    bir de kodunda gördügüm 

    Multipart multipart = new MimeMultipart();

    BodyPart messageBodyPart = new MimeBodyPart();

    burda neden MimeMultiPart kullanmamissin Multipart demissin. Aynisi MimeBodyPart icin de gecerli. Bunla ilgili de bir sikinti olabilir belki.

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek
    unbalanced bunu yazdı

    suraya bakar misin hocam

     

    https://stackoverflow.com/a/20842646

    bir de kodunda gördügüm 

    Multipart multipart = new MimeMultipart();

    BodyPart messageBodyPart = new MimeBodyPart();

    burda neden MimeMultiPart kullanmamissin Multipart demissin. Aynisi MimeBodyPart icin de gecerli. Bunla ilgili de bir sikinti olabilir belki.

     

    Böyle olmasının sorun teşkil etmemesi lazım ama deneyim hemen (:   MimeMultiPart  Multipart  dan extend aynı şekilde MimeBodyPart  da BodyParttan 

    edit. yok abi değişen bir şey olmadı (:  tarayıcından açınca http://prntscr.com/gr4b4a görüntü böyle 

    outlookda böyle http://prntscr.com/gr4bdc 

    sLeymN tarafından 29/Eyl/17 13:13 tarihinde düzenlenmiştir

    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bir kac önerim var hocam o zaman

     

    1- dosya ismini kücült. a.doc gibi bi sey ver (uzunluk ya da türkce karakterden dolayi bu sorunu cikariyor olabilir.

    2- bu yemezse encodeparameters i false olarak ayarla https://javaee.github.io/javamail/#mail.mime.encodeparameters

    sanirim bu sekilde yapabilmen lazim

    java.util.properties props = system.getproperties();

    props.setProperty("mail.mime.encodeparameters", "false");

    3- farkli outlook versiyonlarindan bakma sansiniz varsa bi de öyle bakin, belki eski versiyonsa sorun yapiyor da olabilir

     

    unbalanced tarafından 29/Eyl/17 13:58 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek
    unbalanced bunu yazdı

    bir kac önerim var hocam o zaman

     

    1- dosya ismini kücült. a.doc gibi bi sey ver (uzunluk ya da türkce karakterden dolayi bu sorunu cikariyor olabilir.

    2- bu yemezse encodeparameters i false olarak ayarla https://javaee.github.io/javamail/#mail.mime.encodeparameters

    sanirim bu sekilde yapabilmen lazim

    java.util.properties props = system.getproperties();

    props.setProperty("mail.mime.encodeparameters", "false");

    3- farkli outlook versiyonlarindan bakma sansiniz varsa bi de öyle bakin, belki eski versiyonsa sorun yapiyor da olabilir

     

    hepsini denedim olmadı abi (: 

     public String getContentType() {
                                 return "application/octet-stream";
     }
    şu kısımda "application/pdf" yapınca pdf dosyaları düzgün oluyor ama diğerleri yemedi :D "application/xlsx" falan denedim olmadı :D 

    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    mime type larla da ilgili olabilir hocam, application/xlsx diye bi sey yok :)

    https://github.com/MrSiir/WpfsApp/blob/master/WpfsApp/MIMEAssistant.cs

    xls icin application/vnd.ms-excel

    xlsx icin application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    doc icin  application/msword

    docx icin application/vnd.openxmlformats-officedocument.wordprocessingml.document

     

    yaptigim bir ios uygulamasinda path den bana mime type i dönderen fonksiyonu kullanmisim

     

    mailController.AddAttachmentData(NSData.FromFile(path), MimeAssistant.GetMIMEType(path),fileName);
     

    java icin ister kendin yukarida verdigim linkteki listeyi kullanirsin istersen buradaki farkli seylerden birini kullanabilirsin

    http://www.rgagnon.com/javadetails/java-0487.html

    sanirim bu sorununu cözecektir

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek
    unbalanced bunu yazdı

    mime type larla da ilgili olabilir hocam, application/xlsx diye bi sey yok :)

    https://github.com/MrSiir/WpfsApp/blob/master/WpfsApp/MIMEAssistant.cs

    xls icin application/vnd.ms-excel

    xlsx icin application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    doc icin  application/msword

    docx icin application/vnd.openxmlformats-officedocument.wordprocessingml.document

     

    yaptigim bir ios uygulamasinda path den bana mime type i dönderen fonksiyonu kullanmisim

     

    mailController.AddAttachmentData(NSData.FromFile(path), MimeAssistant.GetMIMEType(path),fileName);
     

    java icin ister kendin yukarida verdigim linkteki listeyi kullanirsin istersen buradaki farkli seylerden birini kullanabilirsin

    http://www.rgagnon.com/javadetails/java-0487.html

    sanirim bu sorununu cözecektir

     

    ya sorunu çözdük diye heveslendim ama yine olmadı abi (:

    http://prntscr.com/gr79wf 

    şuan böyle görünüyor :D 


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    surdaki örnegi dener misin hocam

    https://github.com/javaee/javamail/blob/master/demo/src/main/java/sendfile.java

    adamlar mime type tanimlamasini commentlemis yapmislar.

    Ayrica bu java ile ilgili bir bug hocam (daha dogrusu destekleme sorunu)

     

    We have the same problem and found, the following out:

     

    - With Outlook Express 6, Outlook 2007 SP3 and Outlook 2010 the problem occurs, if the

      attachment name is longer than 60 bytes, with the JavaMail API 1.5.6!

    - Also we found out that the exchange-backend can influence the problem as well.

      In our actual infrastructure with newest Versions of Microsoft Exchange (server and client), the problem does not occur.

     

    The older Version 1.4.1 is working fine. (Also Tests with 1.4.7 are working).

     

    kindly regards,

    Felix

     

    ayrica sana bahsettigim encodeparameters e false verip dene (mail properties inde görmen lazim false oldugunu) bu sekilde de yapabilirsin (mail gönderiminden cok önce) System.setProperty("mail.mime.encodeparameters", "false");

    yine olmasa burada yapilan tartismayi bi oku https://community.oracle.com/thread/4052611

    en son mesajda eleman kod örnegini eklemis orda degistirmen gereken props.put("mail.mime.encodeparameters", "false"); yerine bunu kullanman System.setProperty("mail.mime.encodeparameters", "false");

     

    umarim bu sefer cözülür sorun. Yeni proje üzerinden deneyebilirsin hocam.. 

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    sorunu çözdüm abi (: 

    senin gönderdiğin mimetype dictionary i kullandım (: ayrıca 

    properties.setProperty("mail.mime.multipart.ignoreexistingboundaryparameter", "true");

    properties.setProperty("mail.mime.encodeparameters", "false"); 

    bu iki satırı ekledim.  Sıkıntı çözüldü (: Çok teşekkür ettim 


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.