17 Aralık 2024 Yazarı yhackup 2

Delphi ile Gmail Hesabından Mail Gönderimi

Benim en çok kullandığım şeydir kendileri.

Yaptığınız exe dizininde  libeay32.dll ve ssleay32.dll dosyaları bulunması gerekiyor aksi takdirde ssl hatası alırsınız. dll dosyalarını Buradan İndirebilirsiniz. gmaildll

İlk mail gönderiminde başarısız olacaktır ve gmail size bir mail gönderecektir “Şifrenizi başka biri biliyor”  gibi, o maili açarak o kişinin siz olduğunuzu işaretlemeniz gerekiyor ve ilgili ekran sizi bir kaç ayar yapmaya yönlendirecektir bu ayarları da yapmanız gerekiyor.

Bu ayarları yaptıktan sonra mail gönderimine başlayabilirsiniz.

 

var
SMTP:TIdSMTP;
EPosta: TIdMessage;
LHandler: TIdSSLIOHandlerSocketOpenSSL;
HtmlPart:TIdText;
mailhtml:string;
ImagePart: TIdAttachmentFile;
HtmlPart:TIdText;
begin
    SMTP:=TIdSMTP.Create(nil);
    EPosta:=TIdMessage.Create(nil);
    LHandler:= TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    try
    SMTP.Host:='smtp.gmail.com'  ;
    SMTP.Username:='xxxxx@gmail.com'; //gönderen Email
    SMTP.Password:='xxxxx'; //Gönderen Email şifresi
    SMTP.Port:= 587;
    SMTP.AuthType := satDefault;
    LHandler.Destination := SMTP.Host+'587';
    LHandler.Host := SMTP.Host;
    LHandler.Port := SMTP.Port;
    LHandler.DefaultPort := 0;
    LHandler.SSLOptions.Method := sslvTLSv1 ;
    LHandler.SSLOptions.Mode := sslmUnassigned;
    LHandler.SSLOptions.VerifyMode := [];
    LHandler.SSLOptions.VerifyDepth := 2;

    { // Email ile html gönderimi için
        HtmlPart := TIdText.Create(EPosta.MessageParts);
        HtmlPart.ContentType := 'text/html';
        HtmlPart.CharSet := 'iso-8859-9';
        HtmlPart.Body.LoadFromFile('html dosya dizini');
        
        TIdAttachmentFile.Create(EPosta.MessageParts, 'ek dizini');
        
        ImagePart := TIdAttachmentFile.Create(EPosta.MessageParts, 'fotoğraf dizini');
        ImagePart.ContentType := 'image/png';
        ImagePart.ContentDisposition := 'inline';
        ImagePart.ExtraHeaders.Values['content-id'] := ExtractFileName('fotoğraf dizini');
        ImagePart.DisplayName := ExtractFileName('fotoğraf dizini');
    }
    SMTP.IOHandler := LHandler;
    SMTP.UseTLS := utUseExplicitTLS;
    SMTP.ConnectTimeout := 10000;
    SMTP.Connect;
    EPosta.From.address := 'xxx@xx.com'; // gönderilecek e mail adresi aralarına ; koyarak bir çok kişiye gönderebiliriz.
    EPosta.Subject:= 'Android Mail Servisi'; // mail konusu
    EPosta.Body.Add(''); // Mail yazısı
    EPosta.From.Name := 'Android Mail Servisi'; // mail göneren ismi
    EPosta.Recipients.EMailAddresses := 'xxxxxx@gmail.com'; // gelen mailde görünecek mail adresi
    EPosta.CharSet:='iso-8859-9';
    SMTP.Authenticate;
    try
      SMTP.Send(EPosta);
    finally
      SMTP.Disconnect;
    end;
 finally
    SMTP.Free;
    EPosta.Free;
    LHandler.Free;
 end;
end;