Selamlar
Indy içerisinde bulunan TIdMessage componentini kullanıyorum.
Giden mesajın body kısmında kullandığım türkçe karakterlerde hiç bir sorun yok.
Fakat subject kısmına yazdığım türkçe karakterlerde bozulma oluyor.
Bunun çözümünü bilen arkadaşların yardımını rica ederim.
Teşekkürler.
TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
En son adelphiforumz tarafından 13 Nis 2011 04:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: TIdMEssage Türkçe karakter problemi hakkında
OnInitializeISO event'i içinde
yaz
Kod: Tümünü seç
VCharSet := 'ISO-8859-9';
There's no place like 127.0.0.1
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: TIdMEssage Türkçe karakter problemi hakkında
Teşekkür ederim
Sorun verdiğiniz örnekle çözüldü
Ek Not: Event içerisinde bulunan TTransfer veri elemanı için USES kismina
IdCoderHeader eklenmesi gerekiyor.
Sorun verdiğiniz örnekle çözüldü
Ek Not: Event içerisinde bulunan TTransfer veri elemanı için USES kismina
IdCoderHeader eklenmesi gerekiyor.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
MErhaba.. birşey soracağım. mail gönderdiğinizde, gönderdiğiniz kişinin önemsiz mail kutusuna düşme gibi bir sorun oluyormu?
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
A.S.
bende hiç öyle sorun olmadı
gönderdiğim mail karşı tarafın direk inbox kutusuna düşüyor
kesin olmamakla birlikte belki mail aldığınız yer yada firewall lar bunları junk olarak yorumluyor olabilir
bende hiç öyle sorun olmadı
gönderdiğim mail karşı tarafın direk inbox kutusuna düşüyor
kesin olmamakla birlikte belki mail aldığınız yer yada firewall lar bunları junk olarak yorumluyor olabilir
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
-
- Üye
- Mesajlar: 1
- Kayıt: 10 Kas 2017 01:01
Re: TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
ben de aynı sorunu yaşıyorum. gönderdiğim mail içindeki ı harfleri i ye dönüşüyor mesela. nasıl çözdünüz yardımcı olur musunuz?
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: TIdMEssage Türkçe karakter problemi hakkında (Çözüldü)
"IndySecureMailClient.pas" dosyasında tanımlı "TSSLEmail" sınıfı ile aşağıdaki gibi ePosta göndermede pek sıkıntı çıkmadı karşıma.
IndySecureMailClient.pas dosyası...
Not: ePosta mesajına resim veya dosya iliştirme çalışmasına başlamış ama devam edememiştim yoğunluktan. Bu hali sadece metin bilgisi olarak mesaj göndermektedir.
Kod: Tümünü seç
eMail := TSSLEmail.Create(leSMTPServer.Text, StrToInt(leSMTPPort.Text), leSMTPAdres.Text, leSMTPSifre.Text);
try
eMail.edSenderName := leBaslik.Text;
eMail.edSenderEmail := leSMTPAdres.Text;
eMail.edToEmail := ''; //sKime;
eMail.edBCCEmail := sKime;
eMail.edSubject := eKonu.Text;
eMail.edBody.Text := mMesaj_Lines;
try
//Sleep(1250);
eMail.SendEmail(nil);
except
on E:Exception do begin
Result.HataSinifi:=E.ClassType;//ExceptClass(E.ClassType);
Result.HataMesaji:=E.Message;
Result.Calisti:=False;
end;
end;
finally
eMail.Free;
end;
IndySecureMailClient.pas dosyası...
Kod: Tümünü seç
unit IndySecureMailClient;
interface
uses
IdMessage, Classes, IdSMTP, IdAttachmentFile, IdAttachmentMemory, IdGlobalProtocols;
const
SMTP_PORT_EXPLICIT_TLS = 587;
type
TSSLEmail = class(TObject)
private
IdMessage: TIdMessage;
SMTP: TIdSMTP;
FedBody: TStrings;
FedSMTPPort: Integer;
FedToEmail: string;
FedSubject: string;
FedSMTPServer: string;
FedCCEmail: string;
FedPassword: string;
FedBCCEmail: string;
FedSenderName: string;
FedUserName: string;
FedPriority: TIdMessagePriority;
FedSenderEmail: string;
FedSSLConnection: Boolean;
// Getter / Setter
procedure SetBody(const Value: TStrings);
procedure Init;
procedure InitMailMessage;
procedure InitSASL;
procedure AddSSLHandler;
public
constructor Create; overload;
constructor Create(const ASMTPServer: string;
const ASMTPPort: Integer;
const AUserName, APassword: string); overload;
destructor Destroy; override;
procedure SendEmail(const strm:TStream);
// Properties
property edBCCEmail: string read FedBCCEmail write FedBCCEmail;
property edBody: TStrings read FedBody write SetBody;
property edCCEmail: string read FedCCEmail write FedCCEmail;
property edPassword: string read FedPassword write FedPassword;
property edPriority: TIdMessagePriority read FedPriority write FedPriority;
property edSenderEmail: string read FedSenderEmail write FedSenderEmail;
property edSenderName: string read FedSenderName write FedSenderName;
property edSMTPServer: string read FedSMTPServer write FedSMTPServer;
property edSMTPPort: Integer read FedSMTPPort write FedSMTPPort;
property edSSLConnection: Boolean read FedSSLConnection write FedSSLConnection;
property edToEmail: string read FedToEmail write FedToEmail;
property edUserName: string read FedUserName write FedUserName;
property edSubject: string read FedSubject write FedSubject;
end;
implementation
uses
IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, IdSMTPBase, IdBaseComponent, IdIOHandler,
IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdSASLLogin,
IdSASL_CRAM_SHA1, IdSASL, IdSASLUserPass, IdSASL_CRAMBase, IdSASL_CRAM_MD5,
IdSASLSKey, IdSASLPlain, IdSASLOTP, IdSASLExternal, IdSASLDigest,
IdSASLAnonymous, IdUserPassProvider;
constructor TSSLEmail.Create;
begin
inherited;
Init;
FedBody := TStringList.Create;
end;
procedure TSSLEmail.Init;
begin
edSSLConnection := True;
edPriority := TIdMessagePriority.mpNormal;
end;
constructor TSSLEmail.Create(const ASMTPServer: string;
const ASMTPPort: Integer; const AUserName, APassword: string);
begin
Create;
edSMTPServer := ASMTPServer;
edSMTPPort := ASMTPPort;
edUserName := AUserName;
edPassword := APassword;
end;
destructor TSSLEmail.Destroy;
begin
edBody.Free;
inherited;
end;
// Setter / Getter -----------------------------------------------------------
procedure TSSLEmail.SetBody(const Value: TStrings);
begin
FedBody.Assign(Value);
end;
// Send the mail -------------------------------------------------------------
procedure TSSLEmail.SendEmail(const strm:TStream);
var imgPart:TIdAttachmentMemory;
begin
IdMessage := TIdMessage.Create;
try
InitMailMessage;
//TIdAttachmentFile.
if Assigned(strm) and (strm.Size>0) then begin
strm.Position:=0;
{imgPart:=TIdAttachmentMemory.Create(IdMessage.MessageParts, strm);
imgpart.ContentType := GetMIMETypeFromFile('imza.jpg');
imgpart.ContentID := '<imza>';
imgpart.ContentDisposition := 'inline';{}
//TIdAttachmentFile.Create(IdMessage.MessageParts, 'C:\Users\saban\AppData\Local\Microsoft\Windows\INetCache\Low\IE\HYYTCDA0\esra-erolda-damat-adayinin-mikrofonu-frlatip-gitmesi_8815718-4920_140x79[1].jpg');
end;
SMTP := TIdSMTP.Create;
try
if edSSLConnection then
begin
AddSSLHandler;
if edSMTPPort = SMTP_PORT_EXPLICIT_TLS then
SMTP.UseTLS := utUseExplicitTLS
else
SMTP.UseTLS := utUseImplicitTLS;
end;
if (edUserName<>'') or (edPassword<>'') then
begin
SMTP.AuthType := satSASL;
InitSASL;
end
else
begin
SMTP.AuthType := satNone;
end;
SMTP.Host := edSMTPServer;
SMTP.Port := edSMTPPort;
SMTP.ConnectTimeout := 30000;
SMTP.UseEHLO := True;
SMTP.Connect;
try
SMTP.Send(IdMessage);
finally
SMTP.Disconnect;
end;
finally
SMTP.Free;
end;
finally
IdMessage.Free;
end;
end;
// Prepare the mail ----------------------------------------------------------
procedure TSSLEmail.InitMailMessage;
begin
IdMessage.ContentType := 'text/plain';
IdMessage.Charset := 'UTF-8';
IdMessage.Body := edBody;
IdMessage.Sender.Text := edSenderEMail;
IdMessage.From.Name := edSenderName;
IdMessage.From.Address := edSenderEMail;
IdMessage.ReplyTo.EMailAddresses := edSenderEmail;
IdMessage.Recipients.EMailAddresses := edToEmail;
IdMessage.Subject := edSubject;
IdMessage.Priority := edPriority;
IdMessage.CCList.EMailAddresses := edCCEMail;
IdMessage.ReceiptRecipient.Text := '';
IdMessage.BccList.EMailAddresses := edBCCEMail;
end;
procedure TSSLEmail.AddSSLHandler;
var
SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
// SSL/TLS handshake determines the highest available SSL/TLS version dynamically
SSLHandler.SSLOptions.Method := sslvSSLv23;
SSLHandler.SSLOptions.Mode := sslmClient;
SSLHandler.SSLOptions.VerifyMode := [];
SSLHandler.SSLOptions.VerifyDepth := 0;
SMTP.IOHandler := SSLHandler;
end;
procedure TSSLEmail.InitSASL;
var
IdUserPassProvider: TIdUserPassProvider;
IdSASLCRAMMD5: TIdSASLCRAMMD5;
IdSASLCRAMSHA1: TIdSASLCRAMSHA1;
IdSASLPlain: TIdSASLPlain;
IdSASLLogin: TIdSASLLogin;
IdSASLSKey: TIdSASLSKey;
IdSASLOTP: TIdSASLOTP;
IdSASLAnonymous: TIdSASLAnonymous;
IdSASLExternal: TIdSASLExternal;
begin
IdUserPassProvider := TIdUserPassProvider.Create(SMTP);
IdUserPassProvider.Username := edUserName;
IdUserPassProvider.Password:= edPassword;
IdSASLCRAMSHA1 := TIdSASLCRAMSHA1.Create(SMTP);
IdSASLCRAMSHA1.UserPassProvider := IdUserPassProvider;
IdSASLCRAMMD5 := TIdSASLCRAMMD5.Create(SMTP);
IdSASLCRAMMD5.UserPassProvider := IdUserPassProvider;
IdSASLSKey := TIdSASLSKey.Create(SMTP);
IdSASLSKey.UserPassProvider := IdUserPassProvider;
IdSASLOTP := TIdSASLOTP.Create(SMTP);
IdSASLOTP.UserPassProvider := IdUserPassProvider;
IdSASLAnonymous := TIdSASLAnonymous.Create(SMTP);
IdSASLExternal := TIdSASLExternal.Create(SMTP);
IdSASLLogin := TIdSASLLogin.Create(SMTP);
IdSASLLogin.UserPassProvider := IdUserPassProvider;
IdSASLPlain := TIdSASLPlain.Create(SMTP);
IdSASLPlain.UserPassProvider := IdUserPassProvider;
SMTP.SASLMechanisms.Add.SASL := IdSASLCRAMSHA1;
SMTP.SASLMechanisms.Add.SASL := IdSASLCRAMMD5;
SMTP.SASLMechanisms.Add.SASL := IdSASLSKey;
SMTP.SASLMechanisms.Add.SASL := IdSASLOTP;
SMTP.SASLMechanisms.Add.SASL := IdSASLAnonymous;
SMTP.SASLMechanisms.Add.SASL := IdSASLExternal;
SMTP.SASLMechanisms.Add.SASL := IdSASLLogin;
SMTP.SASLMechanisms.Add.SASL := IdSASLPlain;
end;
end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .