Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

/CURL/Send Email/Send Email in Background async
Required plugins for this example: MBS CURL Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /CURL/Send Email/Send Email in Background async
This example is the version from Mon, 12th Mar 2017.
Project "Send Email in Background async.rbp"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control PushButton1 Inherits PushButton
ControlInstance PushButton1 Inherits PushButton
EventHandler Sub Action() dim lines() as string lines.Append "Hello," lines.Append "" lines.Append "Happy new year!" lines.Append "" lines.Append "Sincerly" lines.Append "Planetum Server" lines.Append "" // fill in something useful dim email as new CURLEmailMBS email.SetFrom "xxx@monkeybreadsoftware.eu", "Planetum Server" email.AddTo "xxx@xxx.xxx", "User" email.SMTPUsername = "xxx@monkeybreadsoftware.eu" email.SMTPServer = "xxxxx" email.SMTPPassword = "xxxxxx" email.Subject = "New Year Greetings" email.PlainText = Join(lines, EndOfLine) dim c as new CURLSMBS if c.SetupEmail(email) then // set options you may need c.OptionVerbose = true c.CollectDebugData = true c.CollectOutputData = true c.OptionConnectionTimeout = 5 // add for queue to send asyncronously CURLSMulti.add c end if End EventHandler
End Control
Control Label1 Inherits Label
ControlInstance Label1 Inherits Label
End Control
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class CURLTImer Inherits Timer
EventHandler Sub Action() // do something in background m.Perform End EventHandler
Sub Constructor(m as CURLSMultiMBS) // one timer to do regulasrly the CURL transfers if something is on the todo list self.m = m period = 40 mode = 2 End Sub
Property m As CURLSMultiMBS
End Class
Class CURLSMulti Inherits CURLSMultiMBS
EventHandler Sub TransferFinished(curl as CURLSMBS, result as Integer, RemainingFinishedTransfers as Integer) #Pragma DisableBackgroundTasks true // write log in case of error if result <> 0 then dim f as FolderItem = SpecialFolder.Desktop.Child("curl.log") dim t as TextOutputStream = TextOutputStream.Append(f) dim d as string = curl.DebugData d = ReplaceLineEndings(d, EndOfLine) t.WriteLine d end if End EventHandler
Shared Sub Add(curl As CURLSMBS) if m = nil then // first m = new CURLSMulti t = new CURLTimer(m) end if if m.AddCURL(curl) then // ok else Break end if End Sub
Property Protected Shared m As CURLSMulti
Property Protected Shared t As CURLTImer
End Class
End Project

See also:

Feedback, Comments & Corrections

The items on this page are in the following plugins: MBS CURL Plugin.

MBS Xojo tutorial videos