// See also: http://pastebin.com/MfLi4pbj - "how to send arbitrary e-mail with file attaches" // See also: http://pastebin.com/3Q1ykdSH - "how to send feedback instead of bug report" // See also: http://pastebin.com/ytYbgAfc - "how to setup send method from code" // This code will work in any project - even without EurekaLog active uses EConsts, ETypes, EClasses, EHash, ESysInfo, ESend, ESendAPIMantis; // <- be sure to include unit with bug tracker send code procedure TForm1.Button1Click(Sender: TObject); var Options: TEurekaModuleOptions; Files: TStringList; begin Options := TEurekaModuleOptions.Create(''); Files := TStringList.Create; try Options.SendMantisURL := 'bugs.example.com'; Options.SendMantisPort := 80; Options.SendMantisSSL := False; Options.SendMantisLogin := 'account'; Options.SendMantisPassword := 'password'; Options.SendMantisProject := 'ProjectName'; Options.SendMantisCategory := 'CategoryName'; Options.SendMantisOwner := 'AssignToAccount'; // 1: store your text message Options.CustomField[sifBugText] := 'Message'; Options.CustomField[sifBugType] := 'Subject'; // 2: you have to redefine BugID, so it will unique identify this message Options.CustomField[sifBugID] := IntToHex(GetCRC32(Options.CustomField[sifBugType] + Options.CustomField[sifBugText]), 8); // 3: (optional) add additional text, if needed Options.CustomField[sifMessage] := 'bug report content'; Options.CustomField[sifStepsToReproduce] := 'steps to reproduce'; // 4: (optional) fill other informational fields Options.CustomField[sifBugAppVersion] := ESysInfo.GetVersionNumber; Options.CustomField[sifBuild] := ESysInfo.GetVersionNumber; Options.CustomField[sifMachineID] := ESysInfo.GetComputerName; Options.CustomField[sifOSBuild] := ESysInfo.GetOSBuild; Options.CustomField[sifOSType] := ESysInfo.GetOSTypeStr; Options.CustomField[sifPlatform] := ESysInfo.GetPlatform; Options.CustomField[sifUserEMail] := ESysInfo.GetUserEMail; // 5: (optional) attach some files, if needed Files.Add('C:\FileToSend1.txt'); Files.Add('C:\FileToSend2.zip'); EurekaLogSend(TELTrackerMantisSender, Options, Files); finally FreeAndNil(Files); FreeAndNil(Options); end; end;