smtp ssl ile yandex üzerinden mail gönderme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Smtp ssl ile yandex üzerinden mail gönderme
Projenin Delphi 7 de derlenen halini eke koyuyorum. Ama hala Indy bileşenlerinin sürümü ile ilgili sorununuz devam edecektir. Verdiğim linklere bakarak sorunu kolaylıkla giderebilirsiniz.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
tamam proje çalıştı amaşimdide aşağıdaki hatayı veriyor ya bir türlü olmadı valla 



Re: smtp ssl ile yandex üzerinden mail gönderme
Sisteminiz 32 bit mi 64 bit mi? Sisteminiz 64 bit olsa bile Delphi 7 sadece 32 bit exe ler ürettiği için ssleay32.dll ve libeay32.dll dosyalarının 32 bit olan sürümünü kullanmalısınız. Normalde bu DLL ler exe mizin olduğu klasörde olunca program sorunsuz çalışıyor. Eğer sorun yaşıyorsanız bir de C:\Windows\System32 klasörüne kopyalayarak programı çalıştırmayı deneyin.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
tamam dediğini gibiymiş oldu çok teşekkür ederim 

Re: smtp ssl ile yandex üzerinden mail gönderme
Sorun neymiş? Açıklarsanız forumu takip edenler de aydınlanmış olur. 32 ve 64 bit sorunu mu? Yoksa DLL leri koyduğunuz klasör sorunu mu?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
hocam sorunsuz çalışıyor teşekkür ederim.
yanlı türkçe karakter sorunu var nasıl çözebilirim ?
örn.
haným
Ulaþýlmadýðým / ulaþamadýðým
Saygýlarýmla
yanlı türkçe karakter sorunu var nasıl çözebilirim ?
örn.
haným
Ulaþýlmadýðým / ulaþamadýðým
Saygýlarýmla
Kod: Tümünü seç
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;
procedure FormShow(Sender: TObject);
procedure btnMAIL_GONDERClick(Sender: TObject);
procedure EPostaInitializeISO(var VHeaderEncoding: Char;
var VCharSet: String);
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'; // 'iso-8859-9';
if Sender = btnMAIL_GONDER then
begin
EPosta.ContentType := 'text/plain';
EPosta.Body.Text := mmoMAIL_TEXT.Lines.Text;
end else
begin
if Sender = btnMAIL_GONDER then
begin
EPosta.ContentType := 'multipart/alternative';
with TIdText.Create(EPosta.MessageParts, nil) do
begin
Body.Text :=
'<html><body>' + mmoMAIL_TEXT.Lines.Text +
'. <B>KALIN YAZI</B><U>ALTI ÇİZGİLİ YAZI</U>' +
'<I>İTALİK YAZI</I></body></html>';
CharSet := 'utf-8';
ContentType := 'text/html';
end;
end else
begin
// İçine resim gömülü HTML
EPosta.ContentType := 'multipart/related; type="text/html"';
with TIdText.Create(EPosta.MessageParts, nil) do
begin
Body.Text :=
'<html><body>' + mmoMAIL_TEXT.Lines.Text +
'. <B>KALIN YAZI</B><U> ALTI ÇİZGİLİ YAZI</U>' +
'<I>İTALİK YAZI </I><br />' +
'<img src="cid:12345"></body></html>';
CharSet := 'utf-8';
ContentType := 'text/html';
end;
// ContentID'nin yukarıdaki cid:12345 teki id ile aynı olmasına dikkat edin.
with TIdAttachmentFile.Create(EPosta.MessageParts, ExtractFilePath(Application.ExeName) + 'resim1.jpg') do
begin
ContentID := '12345';
ContentType := 'image/jpeg';
FileName := 'resim1.jpg';
end;
end;
end;
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(KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.FieldByName('KIMLIK').Text)+' 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.Clear;
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 := KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.fieldbyname('FIRMA_TAM_UNVANI').Text + ' (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 := 'utf-8'; // 'iso-8859-9';
end;
end.
Re: smtp ssl ile yandex üzerinden mail gönderme
Merhaba,
şeklinde bir atama yaptıktan sonra atamasını önce string değerleri UTF8 Encode ederek vermeniz gerekiyor sanırım.
Yukarıdaki örnekte olduğu şekilde metin e-mail göndermeyi deneyin. Çalıştığını gördükten sonra diğer bölümlerde de gerekli düzeltmeleri yaparsınız.
Kod: Tümünü seç
TIdMessage.CharSet := 'utf-8'
Kod: Tümünü seç
TIdMessage.Body.Text
Kod: Tümünü seç
EPosta.Body.Text := string(UTF8Encode(mmoMAIL_TEXT.Linex.Text));
Re: smtp ssl ile yandex üzerinden mail gönderme
Veya Charset leri 8859-9 olarak belirleyin. Yine düzelecektir.
Kod: Tümünü seç
EPosta.CharSet := 'iso-8859-9';
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
Cevaplarınız için çok teşekkür ederim fakat olmadı bir türlü her defasında aynı sorun 

Kod: Tümünü seç
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;
procedure FormShow(Sender: TObject);
procedure btnMAIL_GONDERClick(Sender: TObject);
procedure EPostaInitializeISO(var VHeaderEncoding: Char;
var VCharSet: String);
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';
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(KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.FieldByName('KIMLIK').Text)+' 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 := KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.fieldbyname('FIRMA_TAM_UNVANI').Text + ' (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 := 'utf-8'; // 'iso-8859-9';
end;
end.
Re: smtp ssl ile yandex üzerinden mail gönderme
Sıralamayı aşağıdaki şekilde değiştirebilir misiniz?
Kod: Tümünü seç
EPosta.ContentType := 'text/plain';
EPosta.CharSet := 'utf-8';
EPosta.Body.Text := string(UTF8Encode(mmoMAIL_TEXT.LineS.Text));
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
yine olmadı
böyle çıkıyor
türlü görüşemedik

türlü görüşemedik
Re: smtp ssl ile yandex üzerinden mail gönderme
1- mmoMAIL_TEXT içindeki ifadeyi siz el ile mi yazıp test ediyorsunuz? Yoksa bir dosyadan mı içine yüklüyorsunuz?
2- @csunguray bey'in önerdiği ISO karakter setini denediniz mi? Eğer ISO karakter seti kullanacaksanız dönüşüm yapmanıza gerek yok.
2- @csunguray bey'in önerdiği ISO karakter setini denediniz mi? Eğer ISO karakter seti kullanacaksanız dönüşüm yapmanıza gerek yok.
Kod: Tümünü seç
EPosta.ContentType := 'text/plain';
EPosta.CharSet := 'iso-8859-9';
EPosta.Body.Text := mmoMAIL_TEXT.LineS.Text;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
Merhaba,
Memo içine giriş yapıyorum.
@csunguray bey'in önerisinide denedim aynı.
Teşekkürler
Memo içine giriş yapıyorum.
@csunguray bey'in önerisinide denedim aynı.
Teşekkürler
Re: smtp ssl ile yandex üzerinden mail gönderme
"EPostaInitializeISO" prosedürünü kaldırıp UTF-8 ve ISO, iki şekilde de deneyebilir misiniz?
Güncelleme: Birde aşağıdaki şekilde deneyebilir misiniz? Indy10 karakter seti dönüşümünü kendi içinde yapıyor olabilir.
Güncelleme: Birde aşağıdaki şekilde deneyebilir misiniz? Indy10 karakter seti dönüşümünü kendi içinde yapıyor olabilir.
Kod: Tümünü seç
EPosta.ContentType := 'text/plain';
EPosta.CharSet := 'UTF-8';
EPosta.Body.Text := mmoMAIL_TEXT.LineS.Text;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: smtp ssl ile yandex üzerinden mail gönderme
yok hocam ya ne denediysem olmadı kod aşağıdaki gibi hepsi.
Kod: Tümünü seç
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.ContentType := 'text/plain';
EPosta.CharSet := 'iso-8859-9';
EPosta.Body.Text := mmoMAIL_TEXT.LineS.Text;
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(KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.FieldByName('KIMLIK').Text)+' 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 := KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.fieldbyname('FIRMA_TAM_UNVANI').Text + ' (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.