Archived Forum Post

Index of archived forum posts

Question:

application blocked while the email is being sended or recieved

Mar 24 '15 at 20:31

Hello,

when i am using Mailman.SendEmail(Email), the application is blocked until the order have been completed.

For recieving headers or emails, the same problem. It can take from one second to 30 seconds even, according the size of the information.

I need my application continue working doing others process while Mailman is working. i use VB6.

Any solution?

thanks


Answer

Chilkat is preparing for standard async functionality for all methods in all classes that have event callbacks (basically anything that communicates over TCP/TLS, and long-running operations such as compression). This will be via CkTask (Chilkat.Task) object. For example, the asynchronous Mailman.SendEmail might look like this:

Chilkat.Task sendTask = mailman.SendEmailAsync(email);
The app can then monitor the task object, cancel/abort the task, get progress information, and of course get the results. The existing "Bg" functionality in FTP2 and HTTP will become deprecated in favor of the new standard. The internal architecture changes have been in the works in many of the last version releases over the months -- so that no one release represents a major architectural change. The next version (v9.5.0.49) will complete the internal changes required, and I would hope the following version might include the standard async functionality. Given that micro-version releases are about 5 weeks apart, it might be a stretch...


Answer

Unlike the ChilkatHttp object, it doesn't look like the ChilkatMailMan has background thread or asynchronous methods. Since you are using VB6, creating your own thread to do the job is painful.

One option would be to create an ActiveX EXE for your mail handling (if you need to respond to events in your main application), or just create a separate EXE and shell out to it and let it handle sending the email (you could use some form of interprocess communication to get status and error information). Basically, get the mail functions out of your main process (and therefore out of your main UI thread).


Answer

OK, i undertstand.

Many thanks


Answer

For sending, you can simply use the smtpQ approach.