Mail Gönderme ile ilgili soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

Merhaba arkadaşlar size bir sorum olacaktı;
Servis application ile otomatik olarak mail atan bir program yazdım programda 587 ve 25 numaralı portlarla mail atabilmekteyim fakat mail atmak için 110 numaralı portu kullanmam gerektiğini söylediler bu diğer iki portla mail atmam istenilmiyor, benim bildiğim kadarı ile 110 numaralı port mail almak için, bu porttan mail göndermem mümkünmüdür ve göndermem mümkün ise hangi componentler yardımcı olur. Ufak bi detay 110 numaralı port ile outlook ve thunderbird ile mail gönderme yapamadım hata aldım.
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen warder »

Yazdıklarınızı okuyunca, iletişim kurduğunuz sunucunun dinlediği varsayılan portlar (mecbur değildir) ile sizin programınızın çalıştığı bilgisayarda kullandığı (programcının belirlediği) portları karıştırdığınız hissine kapıldım.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen greenegitim »

Gelen port 110 giden port türkiye için 587
Mücadele güzelleştirir!
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

Arkadaşlarım biliyorum 587 olduğunu bana 110 numaralı porttan mail gönderebildiğini söyleyen bi bilgi işlem birimi mevcut, benim sorum bu mümkün mü?
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen brs »

mr_sagop yazdı:Arkadaşlarım biliyorum 587 olduğunu bana 110 numaralı porttan mail gönderebildiğini söyleyen bi bilgi işlem birimi mevcut, benim sorum bu mümkün mü?
Ben 587 kullanıyorum sen ısrarla 110 dedğin için 587 yi 110 yaptım ve tes ettim gönderdi belki seninde işini çözebilir...

Kod: Tümünü seç

procedure MailGonder(Sender: TObject);
begin
  try
    Form1.FDConnection.Connected := False;
    with Form1.FDQueryAyalar do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * From Ayarlar');
      Prepared := True;
      Open;

      Form1.IdSMTP1.Host := FieldByName('GONDERENHOST').AsString;
      Form1.IdSMTP1.Username := FieldByName('GONDEREN').AsString;
      Form1.IdSMTP1.Password := FieldByName('SIFRE').AsString;
      Form1.IdSMTP1.Port := FieldByName('PORT').AsInteger;
      Form1.IdSMTP1.AuthType := SatDefault;
      Form1.IdSMTP1.ConnectTimeout := 1000;
      Form1.IdMessage1.From.Address := FieldByName('GONDERENADRES').AsString;
      Form1.IdMessage1.From.Name := FieldByName('KIMGONDERDI').AsString;
      Form1.IdMessage1.Subject := FieldByName('KONU').AsString;
      Form1.IdMessage1.Recipients.EMailAddresses := Form4.Mail.Caption;

      Form1.IdMessage1.Body.Add('<html>');
      Form1.IdMessage1.Body.Add('<head>');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Language" content="tr">');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />');

      Form1.IdMessage1.Body.Add('</head>');
      Form1.IdMessage1.Body.Add('<body>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Kulanıcı Adı:</STRONG> ' +
        Form4.Kullanici.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Şifre:</STRONG> ' +
        Form4.Sifre.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('</body>');
      Form1.IdMessage1.Body.Add('</html>');
      Form1.IdMessage1.ContentType := 'Text/Html; charset=UTF-8';
      Form1.IdMessage1.ContentTransferEncoding := '8bit';

      Form1.IdSMTP1.Connect;
      Form1.IdSMTP1.Send(Form1.IdMessage1);
      Form1.IdMessage1.Clear;
      Form4.Label1.Caption := Form4.Mail.Caption +
        ' '#10' E-Posta Adresinize Kullanıcı Bilgileriniz Gönderildi!';

      if Form1.IdSMTP1.Connected then
      begin
        Form1.IdSMTP1.Disconnect;
      end;
    end;
  except
    Application.MessageBox('E-Mail Gönderme Sırasında Hata Oluştu!', 'Hata!',
      MB_Ok or MB_ICONQUESTION);
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen brs »

brs yazdı:
mr_sagop yazdı:Arkadaşlarım biliyorum 587 olduğunu bana 110 numaralı porttan mail gönderebildiğini söyleyen bi bilgi işlem birimi mevcut, benim sorum bu mümkün mü?
Ben normalde 587 portu kullanıyorum sen ısrarla 110 dediğin için 587 yi 110 yaptım ve tes ettim gönderdi belki seninde işini çözebilir...

Kod: Tümünü seç

procedure MailGonder(Sender: TObject);
begin
  try
    Form1.FDConnection.Connected := False;
    with Form1.FDQueryAyalar do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * From Ayarlar');
      Prepared := True;
      Open;

      Form1.IdSMTP1.Host := FieldByName('GONDERENHOST').AsString;
      Form1.IdSMTP1.Username := FieldByName('GONDEREN').AsString;
      Form1.IdSMTP1.Password := FieldByName('SIFRE').AsString;
      Form1.IdSMTP1.Port := FieldByName('PORT').AsInteger;
      Form1.IdSMTP1.AuthType := SatDefault;
      Form1.IdSMTP1.ConnectTimeout := 1000;
      Form1.IdMessage1.From.Address := FieldByName('GONDERENADRES').AsString;
      Form1.IdMessage1.From.Name := FieldByName('KIMGONDERDI').AsString;
      Form1.IdMessage1.Subject := FieldByName('KONU').AsString;
      Form1.IdMessage1.Recipients.EMailAddresses := Form4.Mail.Caption;

      Form1.IdMessage1.Body.Add('<html>');
      Form1.IdMessage1.Body.Add('<head>');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Language" content="tr">');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />');

      Form1.IdMessage1.Body.Add('</head>');
      Form1.IdMessage1.Body.Add('<body>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Kulanıcı Adı:</STRONG> ' +
        Form4.Kullanici.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Şifre:</STRONG> ' +
        Form4.Sifre.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('</body>');
      Form1.IdMessage1.Body.Add('</html>');
      Form1.IdMessage1.ContentType := 'Text/Html; charset=UTF-8';
      Form1.IdMessage1.ContentTransferEncoding := '8bit';

      Form1.IdSMTP1.Connect;
      Form1.IdSMTP1.Send(Form1.IdMessage1);
      Form1.IdMessage1.Clear;
      Form4.Label1.Caption := Form4.Mail.Caption +
        ' '#10' E-Posta Adresinize Kullanıcı Bilgileriniz Gönderildi!';

      if Form1.IdSMTP1.Connected then
      begin
        Form1.IdSMTP1.Disconnect;
      end;
    end;
  except
    Application.MessageBox('E-Mail Gönderme Sırasında Hata Oluştu!', 'Hata!',
      MB_Ok or MB_ICONQUESTION);
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

teşekkür ederim brs arkadaş saolasın dostum
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

brs yazdı:
brs yazdı:
mr_sagop yazdı:Arkadaşlarım biliyorum 587 olduğunu bana 110 numaralı porttan mail gönderebildiğini söyleyen bi bilgi işlem birimi mevcut, benim sorum bu mümkün mü?
Ben normalde 587 portu kullanıyorum sen ısrarla 110 dediğin için 587 yi 110 yaptım ve tes ettim gönderdi belki seninde işini çözebilir...

Kod: Tümünü seç

procedure MailGonder(Sender: TObject);
begin
  try
    Form1.FDConnection.Connected := False;
    with Form1.FDQueryAyalar do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * From Ayarlar');
      Prepared := True;
      Open;

      Form1.IdSMTP1.Host := FieldByName('GONDERENHOST').AsString;
      Form1.IdSMTP1.Username := FieldByName('GONDEREN').AsString;
      Form1.IdSMTP1.Password := FieldByName('SIFRE').AsString;
      Form1.IdSMTP1.Port := FieldByName('PORT').AsInteger;
      Form1.IdSMTP1.AuthType := SatDefault;
      Form1.IdSMTP1.ConnectTimeout := 1000;
      Form1.IdMessage1.From.Address := FieldByName('GONDERENADRES').AsString;
      Form1.IdMessage1.From.Name := FieldByName('KIMGONDERDI').AsString;
      Form1.IdMessage1.Subject := FieldByName('KONU').AsString;
      Form1.IdMessage1.Recipients.EMailAddresses := Form4.Mail.Caption;

      Form1.IdMessage1.Body.Add('<html>');
      Form1.IdMessage1.Body.Add('<head>');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Language" content="tr">');
      Form1.IdMessage1.Body.Add
        ('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />');

      Form1.IdMessage1.Body.Add('</head>');
      Form1.IdMessage1.Body.Add('<body>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Kulanıcı Adı:</STRONG> ' +
        Form4.Kullanici.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('<STRONG>Şifre:</STRONG> ' +
        Form4.Sifre.Caption);
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('============================================');
      Form1.IdMessage1.Body.Add('<br>');
      Form1.IdMessage1.Body.Add('</body>');
      Form1.IdMessage1.Body.Add('</html>');
      Form1.IdMessage1.ContentType := 'Text/Html; charset=UTF-8';
      Form1.IdMessage1.ContentTransferEncoding := '8bit';

      Form1.IdSMTP1.Connect;
      Form1.IdSMTP1.Send(Form1.IdMessage1);
      Form1.IdMessage1.Clear;
      Form4.Label1.Caption := Form4.Mail.Caption +
        ' '#10' E-Posta Adresinize Kullanıcı Bilgileriniz Gönderildi!';

      if Form1.IdSMTP1.Connected then
      begin
        Form1.IdSMTP1.Disconnect;
      end;
    end;
  except
    Application.MessageBox('E-Mail Gönderme Sırasında Hata Oluştu!', 'Hata!',
      MB_Ok or MB_ICONQUESTION);
  end;
end;

Brs arkadaşım denedim aldığım hata daha önceki hatayla aynısı Reply Code is not valid : +OK
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen brs »

Anladım ben protu 110 yapınca sorunsuz gitti ve giden maili kontrol ettim, problem acaba hosting ile ilgili olabilir mi?
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

brs yazdı:Anladım ben protu 110 yapınca sorunsuz gitti ve giden maili kontrol ettim, problem acaba hosting ile ilgili olabilir mi?
zaten kafama en çok takılan da bu outlook ve thunderbird de giden portlarını 25 ve 587 yaptığımda mail gönderdim, yazdığım uygulamada da aynı şekil gönderdim, fakat hem bu uygulamalar hem de kendi uygulamam da 110 numaralı portla gönderemedim.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen csunguray »

Önemli olan bağlandığınız karşıdaki mail sunucusunun hangi portları dinlediğidir. Port numaralarının 25, 587 veya 110 olması geleneklerle ve alışkanlıklarla ilgilidir. Siz kendi kurduğunuz bir SMTP veya POP3 sunucusunu istediğiniz portlara ayarlayabilirsiniz. Sunucu firmanız da aynısını yapabilir. Sistem yöneticinizin veya sunucu firmanızın size hangi portlardan bağlanmanız gerektiğini söylemesi gerekir.

Verdiğiniz örnekte mutemelen SMTP ve POP3 için aynı program/servis kullanıldığı için siz SMTP komutlarını 110 (yani geleneksel POP3) portundan da gönderseniz sunucunuz bu portu dinlediği için ve kendine gelen komutların SMTP komutları olduğunu anladığı için başarıyla mail gönderebiliyorsunuz.

Kendi yazdığınız programdan mail gönderememenizin sebebi %90 ihtimalle bir firewall veya virüs koruma programıdır.
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/)
mr_sagop
Üye
Mesajlar: 17
Kayıt: 02 Eki 2013 02:18

Re: Mail Gönderme ile ilgili soru

Mesaj gönderen mr_sagop »

csunguray yazdı:Önemli olan bağlandığınız karşıdaki mail sunucusunun hangi portları dinlediğidir. Port numaralarının 25, 587 veya 110 olması geleneklerle ve alışkanlıklarla ilgilidir. Siz kendi kurduğunuz bir SMTP veya POP3 sunucusunu istediğiniz portlara ayarlayabilirsiniz. Sunucu firmanız da aynısını yapabilir. Sistem yöneticinizin veya sunucu firmanızın size hangi portlardan bağlanmanız gerektiğini söylemesi gerekir.

Verdiğiniz örnekte mutemelen SMTP ve POP3 için aynı program/servis kullanıldığı için siz SMTP komutlarını 110 (yani geleneksel POP3) portundan da gönderseniz sunucunuz bu portu dinlediği için ve kendine gelen komutların SMTP komutları olduğunu anladığı için başarıyla mail gönderebiliyorsunuz.

Kendi yazdığınız programdan mail gönderememenizin sebebi %90 ihtimalle bir firewall veya virüs koruma programıdır.
verdiğiniz bilgi için teşekkür ederim sanırım firmanın mail sunucu ayarlarında bir sıkıntı mevcut mail atabildiğim 587 numaralı portu kullanmama izin verdiler onlarda işin içinden çıkamadılar, yardımcı olan tüm arkadaşlara çok teşekkür ederim
Cevapla