Mail gönderimi için Indy 10 kullanıyorum. Gönderim esnasında gönderen kişinin adı ve mail adresini iki ayrı editten okuyorum. Gönderim için ayrı ayrı şunları denedim:
with idMessage1 do
From. Text :='Naile' + '<naile@domain>';
Editlerden yazdırdığımda neden bunu yapıyor anlamadım. Editleri birleştirirken ayrı bir değişkene atadım, trim kullandım ama sorun gitmedi. Elle adımı ve mailimi yazınca eklemiyor bad_enc_header ı, editlerden yazdırınca ekliyor. O da gönderdiğim maillerin spama düşmesine sebep olabiliyor.
Senin adında "i" harfi var !... Başımıza şöyle bir şey gelmişti. Report Builder'da bir tool hazırladım. Kullanıcı tanımlı raporlar yapıldı yüzlerce ama Ingiltere kullanıcılarında çok tuhaf bir biçimde ama sadece onlarda, Delphi kodu içerisinde bir raporların M$-SQL Server üzerinde oluşturduğumuz sanal directoryler içinde bir raporun adını (kullanıcı veriyor bu ismi) içinde "i" geçiyor diye sayfa bomboş çıkıyordu.
Encodingleri veya benzeri bir noktayı Indy10 componentlerde BUG'lı üretmiş olabilirler mi?
Naile değilde adının içinde sadece ingilizce harfler olan bir e-posta ve isim bulup denesene. Belki de character encoding ile alakalı olarak bir şeyden dolayı yapıyor (zırvalıyor) olabilir.
Bu sadece bir fikir. Sorun budur diyemiyorum ama dene bakalım.
Internete de bi baktım, dediğim gibi MIME Encoding ile ilgili olarak, Default Encodinginden kaynaklanan bi problem.
Ben mail gönderirken ISO8854-4 idi galiba onu kullanıyorum. Set Encoding gibi bişileri olacak. Oradan yapılıyordu (bi event te içine değer atıyorduk. Eğer öyle yapmazsan algılamıyordu Indy9'da.
procedure TFMailGonder.MsgInitializeISO(var VTransferHeader: TTransfer;
var VHeaderEncoding: Char; var VCharSet: String);
begin
VCharSet := 'iso-8859-9';
end;
Ben de yorumundan yola çıkarak Gönderen ismi olarak bir Türkçe karakter kullanarak bir de kullanmyarak mail gönderdim, sonuç değişmedi. Ama subject kısmında Türkçe karakter kullandığımda Bad_enc_header varken, subjectte Türkçe karakter kullanmadan gönderdiğim mailde çıkmadı. Yani sorun subjectten kaynaklanıyor. Bunun için karakter kodlamasını kodun içine de ekledim ama birşey değişmedi:
Ya bence bunun ne yaptığı belli olmuyor. Türkçe karakter kullanıpta Bad headerı eklemediği gibi Türkçe karakter kullanmadığım zaman bad headırı eklediği de oluyor. Neyden değişiyor anlamıyorum, denemelerim devam ediyor ama bu kadar basit birşeyin böyle uğraştırması hele de neyden kaynaklandığını bulamamak insanı gerçekten çok yoruyor.
procedure TSform.MailMessageInitializeISO(var VTransferHeader: TTransfer;
var VHeaderEncoding: Char; var VCharSet: String);
begin
VCharSet := 'iso-8859-9';
end;
Evet, bilmem kaç kez denemeden sonra anladım ki; subject kısmında kullanılan cümlede ilk kelimeden sonraki kelimelerde Türkçe karakter varsa (ilk kelimedekini takmıyor nedense) veya son kelimeden sonra boşluk yapılmışsa (trim kullanmamın faydası olmadı) BAD_ENC_HEADER ı ekliyor. Görünen o ki Türkçe karakterleri kaldırmadan sorun hallolmayacak ya da başka bir önerisi olan var mı?
az önce aşağıdaki kod ile adı ve email adresini ayrı ayrı editlere yazarak tekrar denedim, yine sorunsuz gönderdi, Mynet edresime
üstelik adımda Ü harfi vardı