16-01-2017, Saat: 17:53
(Son Düzenleme: 17-01-2017, Saat: 08:13, Düzenleyen: TescilsizUzman.)
Arkadaşlar,
Aşağıdaki kod ile mail gönderebiliyorum fakat Türkçe karakter sorununu bir türlü çözmedim yardımcı olabilecek bir arkadaş varsa minnettar olacağım teşekkürler.
Aşağıdaki kod ile mail gönderebiliyorum fakat Türkçe karakter sorununu bir türlü çözmedim yardımcı olabilecek bir arkadaş varsa minnettar olacağım teşekkürler.
unit E_MAIL_GONDER_PENCERE1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdHTTP, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, IdBaseComponent, IdMessage, DB, ADODB, IdExplicitTLSClientServerBase, IdSMTPBase, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, Buttons; type TE_MAIL_GONDER_PENCERE = class(TForm) edtE_MAIL_ADRESI_TEXT: TEdit; label2: TLabel; mmoMAIL_TEXT: TMemo; QRY_MAIL_AYARLARI: TADOQuery; QRY_MAIL_AYARLARIMAIL_KIMLIK: TAutoIncField; QRY_MAIL_AYARLARICALISILAN_FIRMA: TStringField; QRY_MAIL_AYARLARIISLEM_TARIHI: TStringField; QRY_MAIL_AYARLARIEKLEYEN: TStringField; QRY_MAIL_AYARLARIADINIZ: TStringField; QRY_MAIL_AYARLARIE_MAIL_ADRES: TStringField; QRY_MAIL_AYARLARIGELEN_SUNUCU: TStringField; QRY_MAIL_AYARLARIGIDEN_SUNUCU: TStringField; QRY_MAIL_AYARLARIKULLANICI_ADI: TStringField; QRY_MAIL_AYARLARIKULLANICI_SIFRE: TStringField; QRY_MAIL_AYARLARIGELEN_SUNUCU_PORT: TBCDField; QRY_MAIL_AYARLARIGIDEN_SUNUCU_PORT: TBCDField; QRY_MAIL_AYARLARIGELEN_SIFRE_TURU: TStringField; QRY_MAIL_AYARLARIGIDEN_SIFRE_TURU: TStringField; edtKONU: TEdit; lbl1: TLabel; LHandler: TIdSSLIOHandlerSocketOpenSSL; EPosta: TIdMessage; SMTP: TIdSMTP; btnMAIL_GONDER: TSpeedButton; mmoDURUM: TMemo; lblDURUM: TLabel; btn1: TButton; procedure FormShow(Sender: TObject); procedure btnMAIL_GONDERClick(Sender: TObject); procedure EPostaInitializeISO(var VHeaderEncoding: Char; var VCharSet: String); procedure btn1Click(Sender: TObject); private { Private declarations } procedure EPostaIcerikHazirla(Sender: TObject); public { Public declarations } end; var E_MAIL_GONDER_PENCERE: TE_MAIL_GONDER_PENCERE; implementation uses Unit1, StrUtils, IdText, IdAttachmentFile; {$R *.dfm} procedure TE_MAIL_GONDER_PENCERE.EPostaIcerikHazirla(Sender: TObject); begin // EPosta.CharSet := 'utf-8'; // EPosta.Body.Text := string(UTF8Encode(mmoMAIL_TEXT.Lines.Text)); // EPosta.ContentType := 'text/plain'; // EPosta.ContentType := 'text/plain'; //EPosta.CharSet := 'iso-8859-9'; //EPosta.Body.Text := mmoMAIL_TEXT.LineS.Text; // EPosta.Body.Text := 'ERDOĞAN ÖZKAYA '+mmoMAIL_TEXT.LineS.Text; //EPosta.ContentType := 'text/html'; // EPosta.CharSet := 'text/html'; EPosta.CharSet := 'text/html'; EPosta.Body.Text := '<html><body><b>'+mmoMAIL_TEXT.LineS.Text+'</b><a href="htmlbodyIMG0000.JPG" ></body></html>'; end; procedure TE_MAIL_GONDER_PENCERE.FormShow(Sender: TObject); var MAIL_AYARLARI :String; begin MAIL_AYARLARI:=''; QRY_MAIL_AYARLARI.Close; MAIL_AYARLARI:=MAIL_AYARLARI+'CALISILAN_FIRMA='+QuotedStr('19')+' and '; if Length(MAIL_AYARLARI)>0 then MAIL_AYARLARI:='where '+LeftStr(MAIL_AYARLARI,Length(MAIL_AYARLARI)-5); QRY_MAIL_AYARLARI.SQL.Text:='SELECT top(1) * FROM MAIL_AYARLARI '+MAIL_AYARLARI; QRY_MAIL_AYARLARI.Open; { edtE_MAIL_ADRESI_TEXT.Text:=''; edtKONU.Text:=''; mmoMAIL_TEXT.Text:=''; } end; procedure TE_MAIL_GONDER_PENCERE.btnMAIL_GONDERClick(Sender: TObject); begin inherited; mmoDURUM.Lines.Add(''); Application.ProcessMessages; mmoDURUM.Lines.Add('Bağlantı Kuruluyor.'); try if SMTP.Connected then SMTP.Disconnect; SMTP.Host := QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SUNUCU').Text; //EditHOST.Text; //SMTP.AuthType := satNone; SMTP.AuthType := atDefault; SMTP.Username := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text;//EditUSER.Text; SMTP.Password := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_SIFRE').Text;//EditPASSWORD.Text; SMTP.Port := 25; if StrToIntDef(QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SUNUCU_PORT').Text, -1) > 0 then SMTP.Port := StrToInt(QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SUNUCU_PORT').Text); // SSL ayarları if QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SIFRE_TURU').Text='Yok' then begin SMTP.UseTLS := utNoTLSSupport; SMTP.IOHandler := nil; SMTP.ConnectTimeout := 3000; end else begin mmoDURUM.Lines.Add('Bağlantı ayarları yapılıyor.'); LHandler.Destination := SMTP.Host + ':' + IntToStr(SMTP.Port); LHandler.Host := SMTP.Host; LHandler.Port := SMTP.Port; LHandler.DefaultPort := 0; LHandler.SSLOptions.Method := sslvTLSv1; LHandler.SSLOptions.Mode := sslmUnassigned; // sslmClient; LHandler.SSLOptions.VerifyMode := []; LHandler.SSLOptions.VerifyDepth := 0; SMTP.IOHandler := LHandler; end; if QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SIFRE_TURU').Text='SSL' then SMTP.UseTLS := utUseImplicitTLS; if QRY_MAIL_AYARLARI.Fieldbyname('GIDEN_SIFRE_TURU').Text='TSL' then SMTP.UseTLS := utUseExplicitTLS; SMTP.ConnectTimeout := 10000; mmoDURUM.Lines.Add('Sunucuya Bağlanılıyor.'); SMTP.Connect; mmoDURUM.Lines.Add('E-posta gönderiliyor.'); EPosta.Clear; EPosta.From.Address := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text;//EditUSER.Text; EPosta.From.Name := 'ARF GÜVENLİK AŞ (Sistem Mesajidir.)'; EPosta.ReplyTo.EMailAddresses := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text + ' deneme kullanıcısı.'; //EPosta.ReplyTo.Name := EditUSER.Text; with EPosta.Recipients.Add do begin if edtE_MAIL_ADRESI_TEXT.Text > '' then begin Name := edtE_MAIL_ADRESI_TEXT.Text; Address := edtE_MAIL_ADRESI_TEXT.Text; end else begin Name := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text; Address := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text; end; end; EPosta.Subject := edtKONU.Text; EPostaIcerikHazirla(Sender); SMTP.Send(EPosta); mmoDURUM.Lines.Add('Bağlantı başarılı. ' + edtE_MAIL_ADRESI_TEXT.Text + ' adresine bir E-posta gönderilmiştir.'); finally mmoDURUM.Lines.Add('Bağlantı sonlandırılıyor.'); if SMTP.Connected then SMTP.Disconnect; end; end; procedure TE_MAIL_GONDER_PENCERE.EPostaInitializeISO(var VHeaderEncoding: Char; var VCharSet: String); begin inherited; VCHarSet := 'iso-8859-9'; // 'iso-8859-9'; end; procedure TE_MAIL_GONDER_PENCERE.btn1Click(Sender: TObject); begin edtE_MAIL_ADRESI_TEXT.Text:='erdogan_ozkaya@hotmail.com'; end; end.