![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 12/2006
Mesaj: 98
|
Arkadaşlar çok amatörce bir sorum olacak ama daha önce hiç java kullanmadım ve şu an başka şansım olmadığı için bunu sormak zorundayım. Bir java uygulamasında charset nasıl değiştiriliyor? mesela bir metin var ve onun charset'ini nasıl değiştirebilirim? Daha doğrusu java uygulamasının türkçe karakterleri desteklemesini nasıl sağlayabilirim? İsteyenlere dosyayı da gönderebilirim. Çoklu mail gönderme programı fakat mailleri ISO-...-1 kodunda gönderiyor ben ise Türkçe destekli olmasını istiyorum. Kod: http://doc.java.sun.com/DocWeb/api/java.nio.charset.Charset Bunları soylerken hiçbir şekilde java bilgimin olmadığını gözönünde bulundurursanız sevinirim... ![]() Teşekkürler, cevaplarınızı bekleyeceğim... |
| | |
| | #2 (permalink) |
| Luke is back... Üyelik Tarihi: 05/2002 Yer: ../Dark_Side
Mesaj: 2,443
|
Bunun nio ile alakası yok. Mail gönderimi yaparken kullandığın sınıfların encoding desteği ile alakalı. Kodunu gösterirsen (sadece gerekli parçaları tabi) yardımcı olunabilir.
__________________ Do or do not. There is no try. |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 12/2006
Mesaj: 98
| Kod:
publicString prepareSending(String subject, String htmlFileName, boolean embedImages,
String from, String fromName, Set<String> attachements, String mailserver,
boolean detectCorrectHTMLBug, boolean forceCorrectHTMLBug)
{
try {
Properties props = newProperties();
props.put("mail.smtp.host", mailserver);
boolean debug = false;
mSession = Session.getDefaultInstance(props, null);
mSession.setDebug(debug);
mTransport = mSession.getTransport(new URLName("smtp://" + mailserver));
// message and header
message = new MimeMessage(mSession);
InternetAddress addressFrom = new InternetAddress(from , fromName);
message.setFrom(addressFrom);
message.addHeader(XMAILER, mMailer);
message.addHeader(XMAILERVERSION, mVersion);
message.setSubject(subject);
// multipart :
if (!embedImages) { // without embedded images
Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
String msgText = FileToString.convert(newFile(htmlFileName));
messageBodyPart.setContent(msgText , CONTENT_TYPE);
multipart.addBodyPart(messageBodyPart);
addAttachements(attachements, multipart);
message.setContent(multipart);
} else { // with embedded images
Multipart multipart = null;
if (attachements.size() > 0) {
multipart = new MimeMultipart();
}
Multipart mpRel = new MimeMultipart("related");
BodyPart messageBodyPart = new MimeBodyPart();
File f = newFile(htmlFileName);
HtmlConverter converter = new HtmlConverter();
HTMLDocumentAndCID htmlDocCid = converter.embedImages(newFileReader(f));
boolean correctHTMLBug = forceCorrectHTMLBug;
if (!correctHTMLBug && detectCorrectHTMLBug) {
correctHTMLBug = htmlDocCid.needCorrectHTMLParserBug();
}
if (correctHTMLBug)
htmlDocCid.correctHTMLParserBug();
messageBodyPart.setContent(htmlDocCid.getDocument().toString(), CONTENT_TYPE);
mpRel.addBodyPart(messageBodyPart);
// add images
Iterator<String> iter = htmlDocCid.getImgReferences().keySet().iterator();
int cpt = 0;
while (iter.hasNext()) {
String cid = iter.next();
DataSource ds = null;
try {
URL url = newURL(htmlDocCid.getImgReferences().get(cid));
ds = new URLDataSource(url);
} catch (MalformedURLException mue) {
String filename = htmlDocCid.getImgReferences().get(cid);
ds = new FileDataSource(filename);
}
MimeBodyPart bpImg = new MimeBodyPart();
// Initialize and add the image file to the html body part
bpImg.setFileName(ds.getName());
bpImg.setText("Image " + cpt++);
bpImg.setDataHandler(new DataHandler(ds));
bpImg.setContentID("<" + cid + ">");
bpImg.setDisposition(MimeBodyPart.INLINE);
mpRel.addBodyPart(bpImg);
}
// add attachements and finish
if (attachements.size() > 0) {
BodyPart relBP = new MimeBodyPart();
relBP.setContent(mpRel);
multipart.addBodyPart(relBP);
addAttachements(attachements, multipart);
message.setContent(multipart);
} else {
message.setContent(mpRel);
}
}
} catch (Exception e) {
System.out.println("Problem when preparing message");
e.printStackTrace();
return"Could not prepare message to be sent.\n\nError reason :\n" + e.getMessage();
}
returnnull;
}
|
| | |
| | #4 (permalink) |
| Üye Üyelik Tarihi: 12/2006
Mesaj: 98
|
unutmadan bir de send ve connect nesnesi var. Onun kodları da aşağıdaki gibi Kod: privatevoid connect() throws MessagingException {
if (!mTransport.isConnected()) {
System.out.println("connect");
mTransport.connect();
}
}
/** v0.1.3(a) : with attachements, with embedded images */
publicString send(String dests) {
String error = null;
try {
InternetAddress addressTo = new InternetAddress(dests);
message.setRecipient(Message.RecipientType.TO, addressTo);
if (message == null)
thrownewException("Message not prepared !!");
connect();
mTransport.sendMessage(message, message.getAllRecipients());
System.out.println(SUCCESS + message.getAllRecipients()[0]);
} catch (Exception e) {
System.out.println("Problem when sending message");
e.printStackTrace();
error = "Could not send message to " + dests + ".\n\nError reason :\n" + e.getMessage();
}
return error;
}
|
| | |
| | #5 (permalink) |
| Luke is back... Üyelik Tarihi: 05/2002 Yer: ../Dark_Side
Mesaj: 2,443
|
Kod yorum yapmak için çok uzun, fakat gördüğüm kadarıyla söyleyeyim * message.addHeader ile Content-type ve encoding eklenebilir * FileToString sınıfı içinde dosyadan okuma yapan bölümler doğru encoding ile okuyor mu kontrol edilebilir * messageBody.setContent(msgText, CONTENT_TYPE) diye bir satır var, buradaki CONTENT_TYPE nereden alınıyorsa bu değer ISO-8859-9 yapılabilir. Bunları bir deneyip sonuca bakmak lazım.
__________________ Do or do not. There is no try. |
| | |
| | #8 (permalink) |
| Üye Üyelik Tarihi: 12/2006
Mesaj: 98
|
ayrıca alakalı olabileceğini düşündüğüm şu satırlar da var Kod: privatestaticfinalString XMAILER = "X-MailAgent"; privatestaticfinalString XMAILERVERSION = "X-MailAgentVersion"; privatestaticfinalString CONTENT_TYPE = "text/html"; privatestaticfinalString SUCCESS = "Mail successfully sent to "; |
| | |
| | #9 (permalink) |
| Luke is back... Üyelik Tarihi: 05/2002 Yer: ../Dark_Side
Mesaj: 2,443
|
CONTENT_TYPE için "text/html; charset=ISO-8859-9" yazılabilir. Fakat sadece o değil attachment olarak ayarlanan bir dosya var, o dosya FileToString sınıfı ile okunuyor, onun da encoding'i problem çıkarabilir ayrıca.
__________________ Do or do not. There is no try. |
| | |
| | #10 (permalink) |
| Üye Üyelik Tarihi: 12/2006
Mesaj: 98
|
çok sıktım biliyorum ama hic anlamadığım için bunları soruyorum kusura bakma. Malesef java öğrenemedik. Her neyse fileToString nesnesinin kodları da aşağıdaki gibi Kod: publicclass FileToString {
publicstaticString convert(File f) throwsIOException {
FileInputStream in = newFileInputStream(f);
StringBuffer result = newStringBuffer();
int n;
byte[] b = newbyte[10];
n = in.read(b);
while (n != -1) {
result.append(newString(b, 0, n));
n = in.read(b);
}
return result.toString();
}
}
|
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Amatörce Access Veri Tabanı İle Asp Üzerinde çalışıyorum | onlinefizik | Veritabanları & SQL | 2 | 22/05/2006 02:27 |
| Amatörce Web Tasarım Yarışması | gameover | Site Yorum | 15 | 20/05/2004 21:54 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |