dışarıya mail gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ay_es_ca
Üye
Mesajlar: 1
Kayıt: 14 Tem 2008 11:36

dışarıya mail gönderme

Mesaj gönderen ay_es_ca »

Merhaba,
Benim sorunum kendi domanim dışında herhangi bir adrese mail gönderemiyorum.
Mesela domainim deneme.com. deneme@deneme.comdan deneme1@deneme.com a mail attığımdan sorunsuz çalışıyor fakat deneme@deneme.comdan deneme@gmail.com a gönderdiğimde aşağıdaki hata mesajını alıyorum.

Project MailsenderProject.exe raised exception class EidProtokolReplyError with message 'sorry that domain isn't in my list off allowed rcpthosts (#5.7.1).
'.Process stopped. Use step or run to continue.


Hatam nerde bilmiorum. :?:

Kod: Tümünü seç

unit MainUnit;

interface

uses
  inifiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient,
  IdSMTP, ComCtrls, StdCtrls, Buttons, ExtCtrls, IdBaseComponent, IdMessage,
  DB, ADODB, Grids, DBGrids,comobj, OleServer, ExcelXP;

type
  TMailerForm = class(TForm)
    MailMessage: TIdMessage;
    pnlTop: TPanel;
    pnlBottom: TPanel;
    ledHost: TLabeledEdit;
    Body: TMemo;
    ledAttachment: TLabeledEdit;
    btnAttachment: TBitBtn;
    SMTP: TIdSMTP;
    ledFrom: TLabeledEdit;
    ledTo: TLabeledEdit;
    ledCC: TLabeledEdit;
    ledSubject: TLabeledEdit;
    btnSendMail: TBitBtn;
    StatusMemo: TMemo;
    AttachmentDialog: TOpenDialog;
    ADOConnection: TADOConnection;
    ADOQuery: TADOQuery;
    DS: TDataSource;
    Button1: TButton;
    DBGrid2: TDBGrid;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    Memo1: TMemo;
    procedure btnSendMailClick(Sender: TObject);
    procedure SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    procedure btnAttachmentClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    procedure GetSettings;
    procedure SaveSettings;
  public
    { Public declarations }
     PROCEDURE Database(sorgu:string);
     procedure sendmail(from,too,CCC,subject,des,filepath:string);

  end;

var
  MailerForm: TMailerForm;

implementation



{$R *.dfm}



procedure tmailerform.sendmail(from,too,CCC,subject,des,filepath:string);
begin
  StatusMemo.Clear;
     MailMessage.MessageParts.Clear;
  //setup SMTP
  SMTP.Host := ledHost.Text;
  SMTP.Port := 25;

  //setup mail message
  MailMessage.From.Address := from;// ledFrom.Text;
  MailMessage.Recipients.EMailAddresses := too + ',' + CCC;

  MailMessage.Subject := subject;
  MailMessage.Body.Text := des;
  ledAttachment.Text := '';
  ledAttachment.Text:= filepath;
  if FileExists(ledAttachment.Text) then
    TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);

  //send mail
  try
    try
      SMTP.Connect(1000);
      SMTP.Send(MailMessage);
    except on E:Exception do
      StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;

end;

procedure TMailerForm.btnSendMailClick(Sender: TObject);
begin
  StatusMemo.Clear;

  //setup SMTP
  SMTP.Host := ledHost.Text;
  SMTP.Port := 25;
  MailMessage.MessageParts.Clear;
  //setup mail message
  MailMessage.From.Address := 'deneme@deneme.com';// ledFrom.Text;
  MailMessage.Recipients.EMailAddresses := ledTo.Text + ',' + ledCC.Text;

  MailMessage.Subject := ledSubject.Text;
  MailMessage.Body.Text := Body.Text;

  if FileExists(ledAttachment.Text) then
    TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);
  //send mail
  try
    try
      SMTP.Connect(1000);
      SMTP.Send(MailMessage);
    except on E:Exception do
      StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;

end; (* btnSendMail Click *)

procedure TMailerForm.SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
  StatusMemo.Lines.Insert(0,'Status: ' + AStatusText);
end; (* SMTP Status *)

procedure TMailerForm.btnAttachmentClick(Sender: TObject);
begin
  if AttachmentDialog.Execute then
    ledAttachment.Text := AttachmentDialog.FileName;
end;

procedure TMailerForm.FormCreate(Sender: TObject);
var
textpath : string;
begin
  GetSettings;
 textpath:=ExtractFilePath(Application.exename) + '\KAYIT.XLS';
  deletefile(pchar(textpath));
end;

procedure TMailerForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SaveSettings;
end;

procedure TMailerForm.GetSettings;
var
  ini : TIniFile;
begin
  Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  try
    ledHost.Text := ini.ReadString('SMTP','Host','');

    ledFrom.Text := ini.ReadString('MAIL','From','');
    ledTo.Text := ini.ReadString('MAIL','To','');
    ledCC.Text := ini.ReadString('MAIL','CC','');
  finally
    ini.Free;
  end;
end; (* GetSettings *)

procedure TMailerForm.SaveSettings;
var
  ini : TIniFile;
begin
  Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  try
    ini.WriteString('SMTP','Host',ledHost.Text);

    ini.WriteString('MAIL','From',ledFrom.Text);
    ini.WriteString('MAIL','To',ledTo.Text);
    ini.WriteString('MAIL','CC',ledCC.Text);
  finally
    ini.Free;
  end;
end; (* SaveSettings *)

PROCEDURE TmailerForm.Database(sorgu:string);
Begin
  with Adoquery do
  begin
    Close;
    Sql.Clear;
    Sql.Add (sorgu);
    open;
  end;
End;





Function ExportToExcel(oDataSet : Tadoquery; sFile : String): Boolean;
var
        i                 : Integer;

        ExcelApplication1 : TExcelApplication;
        ExcelWorkbook1    : TExcelWorkbook;
        ExcelWorksheet1   : TExcelWorksheet;

begin
        ExcelApplication1 := TExcelApplication.Create(Application);
        ExcelWorkbook1    := TExcelWorkbook.Create(Application);
        ExcelWorksheet1   := TExcelWorksheet.Create(Application);

        try
                ExcelApplication1.Visible[0] := False;
                ExcelApplication1.Connect;
        except
                MessageDlg('excel may not be installed',mtError, [mbOk], 0);
                exit;
        end;

        ExcelApplication1.Visible[0]:=True;
        ExcelApplication1.Caption:='excel Application';
        ExcelApplication1.Workbooks.Add(Null,0);

        ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
        ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
        ExcelWorksheet1.Cells.Item[1,1] := 'İRSALİYE TARİHİ'  ;
        ExcelWorksheet1.Cells.Item[1,2] := 'İRSALİYE NO' ;
        ExcelWorksheet1.Cells.Item[1,3] := 'MÜŞTERİ ADI' ;
        ExcelWorksheet1.Cells.Item[1,4] := 'SEVK ŞEHİR'   ;
        ExcelWorksheet1.Cells.Item[1,5] :=  'ÜRÜN ADI'   ;
        ExcelWorksheet1.Cells.Item[1,6] := 'TUTAR (KDV DAHİL)' ;
        ExcelWorksheet1.Cells.Item[1,7] := 'MİKTAR' ;
        ExcelWorksheet1.Cells.Item[1,8] := 'BİRİM'   ;
        ExcelWorksheet1.Cells.Item[1,9] := 'PLAKA'   ;


        oDataSet.Open;
        while NOT oDataSet.Eof do begin
              for i:=1 to oDataSet.FieldCount do begin
                  ExcelWorksheet1.Cells.Item[oDataSet.RecNo + 1,i] := oDataSet.Fields[i-1].AsString;
              end;

              oDataSet.Next;
        end;
        oDataSet.Close;
        ExcelWorksheet1.SaveAs(sFile);
        ExcelWorksheet1.Disconnect;
        ExcelWorksheet1.Free;

        ExcelWorkbook1.Disconnect;
        ExcelWorkbook1.Free;

        ExcelApplication1.Quit;
        ExcelApplication1.Disconnect;
        ExcelApplication1.Free;
end;




procedure TMailerForm.Button1Click(Sender: TObject);
var
txtsorgu,RTarBas,RTarBit,textpath:string;
tarih,tarih1: TDateTime;
txtfile:textfile;
filestr : TsearchRec;
begin
  //RTarBas:=FormatDateTime('mm.dd.yyyy',date + 1);
  //RTarBit:=FormatDateTime('mm.dd.yyyy',date);
  txtsorgu := ' select * from tablosearch ';
       with Adoquery1 do
  begin
    Close;
    Sql.Clear;
    Sql.text := txtsorgu;
    open;
  end;
  if adoquery1.recordcount > 0 then
    begin
    textpath := ExtractFilePath(Application.exename) + 'KAYIT.XLS';
     if  FindFirst(textpath,faAnyFile,filestr) <> 0 then
     begin
      Adoquery1.First;
      ExportToExcel(AdoQuery1,textpath);
         sendmail('deneme@deneme.com','deneme@gmail.com','deneme1@mynet.com','Mail Gönderimi',body.Text,textpath);
      end;
     end;
end;


end.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: dışarıya mail gönderme

Mesaj gönderen mussimsek »

Merhaba,

Hatada serverınız ben bu adrese mail göndermeyi reddediyorum diyor. Sorun yok gibi.

Öncelikle outlook veya thunderbird gibi bir uygulama ile aynı maili gönderebiliyor musunuz, bir dener misiniz? Gönderemezseniz bu uygulamalar ne hata dönüyor size.

Kolay gelsin.
Cevapla