Aşağıda görülen kod ile mail gönderebiliyorum, bir önceki sorumda hatalarını ve eksiklerini tamamlamıştık. İki konu hakkında yardımlarınıza ihtiyacım var. Şimdiden teşekkür ediyorum.
1. Uygulamada her bir kullanıcı için mail adresi (SMTP.Username) ile birlikte şifresini de (SMTP.Password) girmek gerekiyor. Bu bilgileri tabloda saklıyorum SMTP.Password bilgisini EncodeString ile basit bir şekilde şifreliyorum fakat yine de şifreleri uygulamaya girdirmek bana çok mantıklı gelmiyor. Uygulamaya sadece SMTP.Username bilgisini girdirsek şifreyi outlook nasıl erişiyorsa bizde bir şekilde erişebilir miyiz ?
2. Aşağıdaki kod ile mail gönderiyorum fakat gönderdiğim bu mail outlook'da gönderilmiş öğeler klasöründe gözükmüyor. Gözükmesini sağlayabilir miyiz ?
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;