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.