unit1.pas 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. unit Unit1;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. BrookAction, XMailer, SysUtils;
  6. type
  7. { TMail }
  8. TMail = class(TObject)
  9. private
  10. FSendMail: TSendMail;
  11. FMessage: string;
  12. FReceiver: string;
  13. FSender: string;
  14. FSubject: string;
  15. public
  16. constructor Create;
  17. destructor Destroy; override;
  18. procedure Send;
  19. published
  20. property Sender: string read FSender write FSender;
  21. property Receiver: string read FReceiver write FReceiver;
  22. property Subject: string read FSubject write FSubject;
  23. property Message: string read FMessage write FMessage;
  24. end;
  25. { TFormAction }
  26. TFormAction = class(TBrookAction)
  27. public
  28. procedure Get; override;
  29. end;
  30. { TSendAction }
  31. TSendAction = class(specialize TBrookGAction<TMail>)
  32. public
  33. procedure Post; override;
  34. end;
  35. const
  36. FORM = {$i form.inc};
  37. implementation
  38. { TMail }
  39. constructor TMail.Create;
  40. begin
  41. inherited Create;
  42. FSendMail := TSendMail.Create;
  43. end;
  44. destructor TMail.Destroy;
  45. begin
  46. FSendMail.Free;
  47. inherited Destroy;
  48. end;
  49. procedure TMail.Send;
  50. begin
  51. // Mail
  52. FSendMail.Sender := FSender;
  53. FSendMail.Receivers.Text := FReceiver;
  54. FSendMail.Subject := FSubject;
  55. FSendMail.Message.Text := FMessage;
  56. // SMTP
  57. FSendMail.Smtp.UserName := '[email protected]';
  58. FSendMail.Smtp.Password := 'abc123';
  59. FSendMail.Smtp.Host := 'smtp.host.com';
  60. FSendMail.Smtp.Port := '465';
  61. FSendMail.Smtp.SSL := True;
  62. FSendMail.Smtp.TLS := True;
  63. FSendMail.Send;
  64. end;
  65. { TFormAction }
  66. procedure TFormAction.Get;
  67. begin
  68. Write(FORM);
  69. end;
  70. { TSendAction }
  71. procedure TSendAction.Post;
  72. begin
  73. Entity.Send;
  74. Write('E-mail sent successfully!');
  75. end;
  76. initialization
  77. TFormAction.Register('/');
  78. TSendAction.Register('/send');
  79. end.