Use controls to create, send, retrieve, preview and edit Internet email messages.
Q: Can I compose and send HTML mail?
A: Yes. Using the AddHtml method, you can create an HTML email message with only a single line of code.
Back to Top
Q: Can I include images that are referenced in the HTML part?
A: Yes. An ASP sample that demonstrates this is available on our website.
Back to Top
Q: Do you support progress bars?
A: Yes, just put code within the Progress Event to update status information.
Back to Top
Q: Extensibility to experimental headers and proprietary SMTP servers is important to me. How far can I go using PowerTCP, before I find things it can’t do?
A: You can go pretty far. The SMTP control, for example, allows you to send any propriety command to your server. Another good example is the HeaderFields object, that allows you to add experimental headers to you mail message. PowerTCP is designed for optimal flexibility.
Back to Top
Q: Forgive my ignorance, but what do you mean by encoding/decoding anyway?
A: Mail started out as simple 7-bit ASCII messages (as defined in RFC 822). When we decided we had to shoe-horn in binary documents, UUENCODING was invented, but it wasn’t very flexible, so MIME was invented. But to be backward-compatible with RFC 822, we have to encode 8-bit binary bytes into 7-bit ASCII. So now, whenever we send or receive mail messages, encoding or decoding is part of the process. Not too difficult to understand, but the technical details can be pretty ugly (which is why you use our product instead of writing it yourself).
Back to Top
Q: How do I deploy Excel spreadsheets that use PowerTCP ActiveX controls?
A: Unfortunately, there is no consistent model for 3rd party component support across Office products and versions. The recommended usage in Excel is to use the product as a reference rather than inserting it as a control. Also, if the spreadsheet ever had a PowerTCP control inserted at any previous time, that data was cached by Excel and a new spreadsheet will be required. When deploying to users, please refer to "Distribution under Internet Information Server" in the documentation for instructions as the technique is the same.
Back to Top
Q: How do I verify email addresses?
A: The SMTP control exposes the Verify method that first queries your DNS for the mail server address, then connects to the server directly to validate the email address(es).
Back to Top
Q: How does encoding/decoding “on-the-fly” make PowerTCP a better product?
A: Most of our competitors (and most applications, for that matter), buffer received messages into a temporary file and decode it in one post-processing step. Similarly, new messages are encoded into a temporary file before sending. So these products cause processing delays while encoding/decoding, and slow things down with additional disk access. PowerTCP eliminates these delays by eliminating the temporary file…all encoding/decoding takes place “just in time” without using a temporary file, so your application operates more smoothly.
Back to Top
Q: I have a web page that embeds your ActiveX control that works on my development machine. On another machine, a red 'X' appears or the controls shows the Trial Message.
A: The problem is that a runtime license needs to be provided for the control. Resolution: Get LPK_TOOL.EXE from Microsoft. You can find it in their Cabinet Development kit. It is also on one of the CDs that comes with Visual Studio. Use the LPK_TOOL to create an .lpk file for YOUR control. We can't stress YOUR control enough. In other words, let's say that you have a control called MyControl that contains several Dart controls. When choosing the control in the LPK_TOOL listbox, choose MyControl, NOT the Dart Controls. Again, we can't stress this part enough as it is ALWAYS the part that is missed. Add the following to your document BEFORE any other objects are declared. Make sure LPKNAME.LPK is the name of YOUR lpk: <OBJECT CLASSID=clsid:5220cb21-c88d-11cf-b347-00aa00a28331> <PARAM NAME='LPKPath' VALUE='LPKNAME.LPK'>
Back to Top
Q: In Powerbuilder, the hourglass cursor does not persist when the Dart control is busy. How can I keep the hourglass?
A: Unlike other environments, the interface is automatically disabled when the cursor changes to an hourglass in Powerbuilder.

Including the code below will allow the hourglass to persist, but it will not automatically disable the interface. To produce the usual hourglass behavior, the interface must be explicitely disabled and enabled by the user.

//In the external global function declarations
FUNCTION ulong SetCapture(ulong a) LIBRARY "user32.dll"
FUNCTION boolean ReleaseCapture()
LIBRARY "user32.dll"

//In the script
ulong ll_handle, ll_rc
ll_handle = Handle(this)
ll_rc = SetCapture(ll_handle)

//after done

Back to Top
Q: Is the free trial a 'full version'?
A: Yes. Your trial download is identical to the purchased product. The only difference is the trial download will only work for 30 days (in the case of ActiveX products) or will work for 7 days between each rebuild (for .NET products).
Back to Top
Q: Is this product interoperable with the .NET framework?

Although the product may work with the .NET framework, it is not recommended no supported by our technical staff. PowerTCP for ActiveX products were not made to be used with the .NET framework and some features or versions of the framework may be incompatible. We do offer a line of PowerTCP for .NET products that are updated for continued compatibility within .NET.

Back to Top
Q: Other products support only synchronous (blocking) or asynchronous (non-blocking) operation. Why do you provide both?
A: When developing a client application, our customers will typically start using our product synchronously because it is easiest to implement. Later, the application may be changed to use asynchronous communications as the application is optimized. Eventually, the application may even be ported to ASP, where synchronous operation is required. Our customers like the flexibility we provide with these two models incorporated into the same product.
Back to Top
Q: What’s ESMTP, and what do I need to know to use it?
A: Enhanced (or extended) SMTP is automatically sensed and transparently used as appropriate. The PIPELINING capability, for example, greatly improves throughput under typical conditions.
Back to Top
Q: Why am I getting a Type Mismatch error in VBScript?
A: When using our controls in VBScript, you must specify optional parameters to prevent Type Mismatch errors.
For example, to zip a file with the FileStore, you need to create a SpanSettings instance:

Dim span
Set span = CreateObject("Dart.SpanSettings.1")
Zip1.FileStore.Zip("c:\Test\", span)

Back to Top
Q: Can I use the ActiveX controls in a scripting language such as VBScript?

Yes, in most environments the ActiveX controls can be used in a scripting engine such as VBScript.

However, while the controls will work on 64 bit machines in compiled environments such as VB6 and VC++, they are limited to 32 bit Operating Systems in scripting environments.

Back to Top
Q: How is the PowerTCP Mail Tool different from the competition?


Dart’s primary design goal is ease-of-use while preserving capability and flexibility, and the Mail Tool is probably the best example of this duality. We do this by segmenting and simplifying the problem into a rich object model that is intuitive, but is only referenced if needed by the developer. For example, the POP3 control dynamically creates a collection of Message objects when it downloads messages. By creating the Message objects, we eliminate your need to understand anything about the how the transfer or decoding took place, and you only need to write enough code to pick out those features of the message that are relevant to your solution.
Back to Top
Q: Why do I see an 'Error accessing the registry' message in VB6?
A: This error will occur on Windows Vista and Windows 7 machines when User Account Control (UAC) is on and VB6 tries to write to an inaccessible part of the registry.

You will see this error message when an ActiveX control is used for the first time. This may be when a project using the control is opened, or when the control is selected to add to the Toolbox.

After the initial failure, VB6 will select an alternate registry location to write to, and subsequent uses of the control will not produce the error.

Back to Top