Email gönderme sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Email gönderme sorunu

Mesaj gönderen White Rose »

Selamun Aleykum
idmessage ve idsmtp kullanarak tek form olarak yaptığım projemde mail gönderebilirken aynı email formunu içinde birçok formun bulunduğu başka br projeye eklediğimde email gönderemiyorum. Email gitti olarak mesaj veriyor ve herjangi bir hata almıyorum. mail server firması ile görüştüm kendilerinde herhangi bir sorun olmadığını bildirdiler. Webmail üzerinden de mail gönderebiliyorum. Böyle birşey nasıl olabilir hala anlamadım. Üstelik aynı projede daha önce mail gönderebiliyordum.
Bir haftadır uğraşıyorum, denemediğim yöntem kalmadı. Hayret ediyorum.
Yardımlarınız için şimdiden teşekkür ederim.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Email gönderme sorunu

Mesaj gönderen SimaWB »

Hangi versiyon Indy kullanıyorsunuz bilmiyorum ama TIdSMTP'in Intercept özelliğe TIdLogFile ekleyip Log'lara bakabilirsiniz.
There's no place like 127.0.0.1
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Email gönderme sorunu

Mesaj gönderen csunguray »

Test amaçlı olarak başka SMTP sunucusun üzerinden göndermeyi deneyin. Durumu gözleyin.
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/)
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Email gönderme sorunu

Mesaj gönderen White Rose »

indy 9 kullanıyorum kendi mail serverimi kullanıyorum
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Email gönderme sorunu

Mesaj gönderen csunguray »

White Rose yazdı:kendi mail serverimi kullanıyorum
Test amaçlı olarak başka SMTP sunucusu üzerinden gönderim yapmayı deneyin. Durumu gözleyin.
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/)
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: Email gönderme sorunu

Mesaj gönderen erdogan_ozkaya »

Merhaba,

aşağıdaki kod ile smtp üzerinden gönderiyorum ve bir sıkıntı yok.


indy 10.1 kullanıyorum

http://www.indyproject.org/index.en.aspx


Kod: Tümünü seç

  if QRY_MAIL_AYARLARI.RecordCount=0
  then ShowMessage('Mail hesabı bulunmadı lütfen ayarları kontrol ediniz.') else
  begin
  inherited;
  Application.ProcessMessages;
  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
      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;
    SMTP.Connect;
    EPosta.Clear;
    EPosta.From.Address := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text;//EditUSER.Text;
    EPosta.From.Name :=  QRY_MAIL_AYARLARI.fieldbyname('ADINIZ').Text + ' (Sistem Mesajidir.)';
    EPosta.ReplyTo.EMailAddresses := QRY_MAIL_AYARLARI.Fieldbyname('KULLANICI_ADI').Text;
    //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.CCList.EMailAddresses:=QRY_AYARLAR_DB.Fieldbyname('HAREKET_MAIL').Text;
    EPosta.Subject :=  edtKONU.Text;
    EPostaIcerikHazirla(Sender);
    SMTP.Send(EPosta);
   finally
    if SMTP.Connected then SMTP.Disconnect;
  end;
 end;

Kod: Tümünü seç

procedure TANA_SAYFA.EPostaIcerikHazirla(Sender: TObject);
begin
     EPosta.Body.Text := mmoMAIL_TEXT.LineS.Text;
end;

Kod: Tümünü seç

  private
        { transparan form }
    FullRgn, ClientRgn, CtlRgn: THandle;
    procedure MakeTransparent;
    procedure UndoTransparent;
            ////bitiş

    Procedure KURLAR;    
    procedure EPostaIcerikHazirla(Sender: TObject);
  public
    { Public declarations }
  end;
Cevapla