Yahoo mail yeni versiyon

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 09:11

Yahoo mail yeni versiyon

Mesaj gönderen naile » 08 Oca 2008 10:11

Indy 10 kullanarak mail attığım bir programım var, ancak Türkçe karakterlerde yahoo mailin yeni versiyonu sorun çıkarıyor. Aynı maile yahoo classic de baktığım zaman düzgün yahoo yeni versiyonda baktığımda tr karakterler yerine değişik karakterler çıkarıyor: Пял▄Ко

Gönderdiğim mail text/html tipli ve html kodunun içeriği:

Kod: Tümünü seç

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>No Title</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-9">
</HEAD>
<BODY>
<DIV>&nbsp;İŞĞÜÇÖ</DIV></BODY></HTML>
Bu kaynağı yahoo mailden gelen mailin kaynağına baktığımda sildiğini görüyorum. Gelen mailin yahooda görünen kaynak kodu:

Kod: Tümünü seç

<script type = "text/javascript" DEFER>var YAHOO = {'Shortcuts' : {}};
YAHOO.Shortcuts.hasSensitiveText = false;
YAHOO.Shortcuts.sensitivityType = [];
YAHOO.Shortcuts.doUlt = false;
YAHOO.Shortcuts.location = "us";
YAHOO.Shortcuts.document_id = 0;
YAHOO.Shortcuts.document_type = "";
YAHOO.Shortcuts.document_title = "\u00c4\u00b0\u00c5\u009e\u00c4\u009e\u00c3\u009c\u00c3\u0087\u00c3\u0096";
YAHOO.Shortcuts.document_publish_date = "";
YAHOO.Shortcuts.document_author = "naile@delphiturkiye.com";
YAHOO.Shortcuts.document_url = "";
YAHOO.Shortcuts.document_tags = "";
YAHOO.Shortcuts.annotationSet = {

};
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>No Title</title>
 

</head> 
<link rel="stylesheet" href="http://us.js2.yimg.com/us.js.yimg.com/lib/lw/contextual_shortcuts_3.0.2.css" type="text/css" media="all" /><body>
<div>&nbsp;???-??</div><span id="lw_beacon_1199779567103"></span></body></html>
Bunla ilgili bir çalışması olan var mı acaba veya indy ile mail gönderiyorsanız eğer sizde deneyip sonucu bana söyleyebilir misiniz?

Ek bilgi: Yahoo yeni versiyona geçmek için optionsa tıklayın, sağ köşede çıkan mor bantlı (The new Yahoo! Mail has arrived!Try it Now!) yazıyı tıklayın.

Lord_Ares
Üye
Mesajlar: 1058
Kayıt: 15 Eki 2006 03:33
Konum: Çorlu

Mesaj gönderen Lord_Ares » 09 Oca 2008 03:58

Eğer yanlış anlamadıysam sorununu şu çözecektir. türkçe karakter,boşluk ve özel karakter gibi simgelerin url formatına çevrilmesi gerekir. mesela boşluk karakteri yerine %20 şeklinde yazman gerekir. eğer sen bu şekil formatlama ile uğraşmak istemiyorsan. Fastnet tabında olan NMURL den bir adet koy ( kitaptan alıntıdır )

kullanımı

edit içine girilen bir veriyi göndermeden önce bunu formatla

edit1.text:=NmUrl1.encode;



var
gönderilecekbilgi : ansistring;

begin

NmUrl1.inputstring:=edit1.text;
edit1.text:=NmUrl1.encode;
gönderilecekbilgi:=edit1.text;



şeklinde kullanabilirsin veya ikinci bir yol fastnet componentleri yüklü değilse sende


gönderilecekbilgi:=HTTPEncode(Edit1.Text );


şeklinde kullanarak bunu çözebilirsin. bunun kullanman için uses satırına şunu eklemen gerekiyordu. uses Httpapp;

bu fonksiyonun açık halide aşağıda belki incelemek istersin


function HTTPEncode(const AStr: String): String;
// The NoConversion set contains characters as specificed in RFC 1738 and
// should not be modified unless the standard changes.
const
NoConversion = ['A'..'Z','a'..'z','*','@','.','_','-',
'0'..'9','$','!','''','(',')'];
var
Sp, Rp: PChar;
begin
SetLength(Result, Length(AStr) * 3);
Sp := PChar(AStr);
Rp := PChar(Result);
while Sp^ <> #0 do
begin
if Sp^ in NoConversion then
Rp^ := Sp^
else
if Sp^ = ' ' then
Rp^ := '+'
else
begin
FormatBuf(Rp^, 3, '%%%.2x', 6, [Ord(Sp^)]);
Inc(Rp,2);
end;
Inc(Rp);
Inc(Sp);
end;
SetLength(Result, Rp - PChar(Result));
end;

Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 09:11

Mesaj gönderen naile » 09 Oca 2008 09:47

Teşekkürler, deneyip sonucu bildireceğim.

Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 09:11

Mesaj gönderen naile » 09 Oca 2008 11:00

HTTPEncode kullanarak gönderdim maili ama karakter bu sefer da farklı şekillerde gitti(üstelik normal gittiği yere de o halde gitti) (%DD%DE%D0%DC%C7%D6 gibi). Bu encode işleminden sonra farklı bişey daha yapmak gerekiyor mu? Direk bunu kullanıp içeriği onla encode edince işe yaramıyor.

Lord_Ares
Üye
Mesajlar: 1058
Kayıt: 15 Eki 2006 03:33
Konum: Çorlu

Mesaj gönderen Lord_Ares » 09 Oca 2008 08:52

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<font face="verdana,geneva,sans-serif" size="-2">

emin değilim ama sayfanın kodlarına baktığım da bir çok karakter fontu kullanılmış sorun bundan kaynaklanıyor olabilir.

ikinci şüphe verici olay bazı yerlerde md5 kullanılmış belki buda sorun olabilir.

<input type="hidden" name=".md5" value

%DD%DE%D0%DC%C7%D6 gibi demişsin, burda dikkatimi çeken % işareti boşluk yerine kullanılır. ve genelde bildiğim kadarıyla verileri get metodu kullan html sayfalarda kullanılır. sayfaya verileri nasıl gönderiyorsun post metoduylamı, get methoduyla mı. yahoo sanırım post methodunu kullanıyor.

Cevapla