Aşağıda ki kodu kullanarak e-posta gönderimi yamak istiyorum. Kendim yandex mail kullanıyorum ve aşağıda görülen gerekli bilgileri yerlerine girince e-posta gönderimi yapabiliyorum. Fakat e-postalarını içeride kendi bünyesinde kendi domain server'ında tutan ortamda e-posta gönderemiyorum, "SSL Negotiation failed" hatasını veriyor. Kullandığım kodu olduğu gibi paylaşıyorum. Bu konuda yardımlarınızı rica ediyorum.
Kod: Tümünü seç
var
Attachmentfile: TIdAttachmentFile;
begin
if MessageBox(Handle, PChar(TrimLeft(TrimRight(T_SIPARISYETKILI_ADI.Value))+' yetkilisi '+TrimLeft(TrimRight(T_SIPARISE_POSTA.Value))+' adresine e-posta gönderilecektir, devam etmek istiyor musunuz ?'),'Uyarı',mb_YESNO)= id_No then
exit;
// IO HANDLER SETTINGS //
With IdSSLIOHandlerSocketOpenSSL1 do
begin
Destination := T_SISTEMSMTP_HOST.Value;
Host := T_SISTEMSMTP_HOST.Value;
MaxLineAction := maException;
Port := T_SISTEMSMTP_PORT.Value;
SSLOptions.Method := sslvTLSv1;
SSLOptions.Mode := sslmUnassigned;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 0;
end;
// SETTING SMTP COMPONENT DATA //
SMTP.Host := T_SISTEMSMTP_HOST.Value; //.. smtp.yandex.com.tr;
SMTP.Port := T_SISTEMSMTP_PORT.Value; //.. 587; -->yandex giden posta için bu port numarasını kabul ediyor.
SMTP.Username := T_SISTEMSMTP_USERNAME.Value; //.. emailadresin@domainadi.com
SMTP.Password := T_SISTEMSMTP_PASSWORD.Value; //.. Kullanıcı şifresi;
SMTP.IOHandler:= IdSSLIOHandlerSocketOpenSSL1;
SMTP.AuthType := satDefault;
SMTP.UseTLS := utUseExplicitTLS;
//.. FASTREPORT İLE PDF FİLE OLUŞTURUYOR.
try
if not DirectoryExists('C:\Temp') Then // Klasör yoksa
If not CreateDir('C:\Temp') Then // Oluştur
begin
showmessage('C:\Temp klasörü oluşturulamadı.');
Exit;
end;
if not DirectoryExists('C:\Temp') Then // Klasör yoksa
If not CreateDir('C:\Temp') Then // Oluştur
begin
showmessage('C:\Temp klasörü oluşturulamadı.');
Exit;
end;
frxSIPARIS_RPT.Report.LoadFromFile(ExtractFilePath(ParamStr(0))+'Rapor\SIPARIS_RPT.fr3');
frxSIPARIS_RPT.PrintOptions.ShowDialog := False;
frxSIPARIS_RPT.PreviewOptions.AllowEdit:= False;
frxSIPARIS_RPT.ShowProgress:= false;
frxSIPARIS_RPT.EngineOptions.SilentMode:= True;
frxSIPARIS_RPT.EngineOptions.EnableThreadSafe := True;
frxSIPARIS_RPT.EngineOptions.DestroyForms := False;
frxSIPARIS_RPT.EngineOptions.UseGlobalDataSetList:= False;
frxPDFExport1.Background:= True;
frxPDFExport1.ShowProgress:= False;
frxPDFExport1.ShowDialog:= False;
frxPDFExport1.DefaultPath:= '';
if length(T_SISTEMLOGO.Value)>0 then
(frxSIPARIS_RPT.FindObject('LOGO') as Tfrxpictureview).picture.LoadFromFile(ExtractFilePath(ParamStr(0))+T_SISTEMLOGO.Value)
else
(frxSIPARIS_RPT.FindObject('LOGO') as Tfrxpictureview).Visible:= false;
(frxSIPARIS_RPT.FindObject('BELGE_NO') as Tfrxmemoview).Memo.Text:= T_SIPARISSERI.Value+'-'+IntToStr(T_SIPARISFIS_NO.Value);
(frxSIPARIS_RPT.FindObject('BELGE_TAR') as Tfrxmemoview).Memo.Text:= DateToStr(date());
(frxSIPARIS_RPT.FindObject('HESAP_ADI') as Tfrxmemoview).Memo.Text:= T_SIPARISHESAP_ADI.Value;
frxSIPARIS_RPT.PrepareReport();
frxPDFExport1.FileName := 'C:\Temp\'+TrimLeft(TrimRight(T_SIPARISFIS_NO.Value))+'.pdf';
frxSIPARIS_RPT.Export(frxPDFExport1);
except on e:Exception do
begin
ShowMessage(e.Message);
exit;
end;
end;
// mail gönderiliyor //
MailMessage.Clear;
MailMessage.CharSet:= 'utf-8';
// alıcılar listesi //
with MailMessage.Recipients.Add do
begin
Name := TrimLeft(TrimRight(T_SIPARISE_POSTA.Value)); //.. alıcı adı
Address := TrimLeft(TrimRight(T_SIPARISE_POSTA.Value)); //.. alıcı@email.com
end;
// CC listesi //
with MailMessage.CCList.Add do
begin
Name := ''; //.. CC alıcı adı
Address := ''; //.. CCalıcı@email.com
end;
// e-postaya dosya ekleme //
Attachmentfile := TIdAttachmentFile.Create(MailMessage.MessageParts,'C:\Temp\'+TrimLeft(TrimRight(T_SIPARISFIS_NO.Value))+'.pdf');
MailMessage.From.Address := T_SISTEMSMTP_USERNAME.Value; //.. emailadresin@domainadi.com
MailMessage.Subject := 'SİPARİŞ E-POSTA TEST';
MailMessage.Body.Text := 'BU E-MAIL ULAŞTIYSA ARAYABİLİR MİSİN ?';
MailMessage.Priority := mpHigh;
TRY
SMTP.Connect();
SMTP.Send(MailMessage);
ShowMessage('E-Posta gönderildi.');
SMTP.Disconnect();
except on e:Exception do
begin
ShowMessage(e.Message);
SMTP.Disconnect();
end;
END;
AttachmentFile.Free;