Nebula Research and DevelopmentNebulaMail

NebulaMail iconNebulaMail is designed to allow any D3 system to send and receive e-mail directly from a Pick / MultiValue business application. NebulaMail software runs on all D3 platforms, including D3 NT, D3 Linux, and D3 AIX, and will be ported to other MV DBMS platforms based on demand.

What is NebulaMail?

NebulaMail is intended to answer the frequently asked question "how do I send mail from my Pick application?". With NebulaMail you can send text or HTML e-mail easily from your BASIC code using the template and substitution method common in web page development. You don't need to know anything about SMTP or MAPI protocols, or figure out how to tie into sendmail or blat. Attachments are easily sent from anywhere in your network.

The following code sample comes from the library of sample code provided free with NebulaMail. You are free to copy code samples into your application code to immediately enable your software with e-mail capability:

SUBS = ""
VM = CHAR(253)
SUBS<-1> = NMAIL.TO : VM : "yourclient@theirdomain.com"
SUBS<-1> = NMAIL.FROM : VM : "you@yourdomain.com"
SUBS<-1> = NMAIL.DISPLAYTO : VM : "Mr. Client <yourclient@theirdomain.com>"
SUBS<-1> = NMAIL.DISPLAYFROM : VM : "Customer Service <you@yourdomain.com>"
SUBS<-1> = NMAIL.SUBJECT : VM : "News for you"
SUBS<-1> = NMAIL.BODYTYPE : VM : MY.MAIL.TYPE
SUBS<-1> = NMAIL.SERVER : VM : "mail.yourdomain.com:587"
SUBS<-1> = NMAIL.USER : VM : "userx"
SUBS<-1> = NMAIL.PSW : VM : "p4sw3rd"
RTN = NMAIL.DEBUG : NMAIL.LOG
CALL NEBULAMAIL(SUBS,BODY,RTN)

You'll notice that this client code can easily run unchanged over any MV DBMS environment. For VARs supporting multiple platforms this portability is important.

How do we send plain text or HTML e-mail?

The above example uses variables BODY and MY.MAIL.TYPE with no definition. To send plain text, use this code:

MY.MAIL.TYPE = NMAIL.BT.TEXT
BODY = "This is an administrative event notification."
BODY<2> = "=========="
BODY<3> = MESSAGE
BODY<4> = "=========="

Each attribute in the body is a line in the plain text body.

To send HTML:

MY.MAIL.TYPE = NMAIL.BT.HTML
BODY = \<html><body>\
BODY<-1> = \This is a <a href="http://yourdomain.com">link</a>\
BODY<-1> = \ to our site<p>C'mon and visit us</body></html>\

What about Attachments?

ATT.PATH = "c:\temp\mail\test.pdf"
ATT.FILE = "newname.pdf"
MIME.TYPE = NMAIL.ATT.BIN
CALL NEBULAMAIL.MIME(ATT.FILE,MIME.TYPE)
SUBS<-1> = NMAIL.ATTPATH : @VM : ATT.PATH
SUBS<-1> = NMAIL.ATTFILE : @VM : ATT.FILE
SUBS<-1> = NMAIL.FILETYPE : @VM : MIME.TYPE

You just provide the real path to the file, the filename you want the recipient to see, and NebulaMail will figure out the proper MIME type, to ensure for example, that the recipient uses Microsoft Word to open up a file that has a ".doc" file extension. Multiple attachments are delimited with semicolon, comma, or subvalue-marks.

Other solutions are platform-specific or tie into third-party tools, making them less portable and more costly to implement and maintain. If you are using sendmail or blat now, think about what you'd have to do to convert to another DBMS or OS.

Why didn't we use AccuTerm to send mail from client PC's, or use MAPI or other common techniques for creating e-mail? Take a look at this informative white paper on the topic: http://www.asent.com/email_white_paper.htm - and be sure to read the Summary at the bottom of the document. NebulaMail was designed to eliminate object oriented programming, scripts, and other non-Pick BASIC concerns, and the costs associated with using them.

Re: White Paper by Peter Schellenbach and Joe Goldthwaite. This isn't intended to criticize the techniques generously documented, but to point out their complexity.

NebulaMail receives e-mail?

This unique feature allows your business application to poll a mail server just like any other e-mail client. This allows your code to check for bounced mail, out of office notifications, "remove me" requests, and other responses to your mail. It also provides a whole new way for your business partners to interact with your business:

  • Customers can e-mail pricing requests, order status, or shipping status
  • Customers can request a quote for an entire list of products, and you can e-mail back pricing and availability data.
  • Customers can request to be added to a list to receive notification of status changes regarding projects or products.
  • Vendors can e-mail you their own pricing updates.
  • Management can request reports without actually connecting into your system.
  • Sales people can simply e-mail contact data or sales activity. They can request contact names, phone numbers, client sales activity, or other data from portable devices without logging in with a terminal emulator or using a web browser.
  • Implement a system-to-system B2B interface with your trading partners using e-mail and possibly XML.

All of these things are possible right now for your business. Many companies are using XML Web Services to perform these functions. We will be happy to work with you to implement Web Services, and Tony Gravagno has even written articles on the topic) but you may not need it right now. Many Pick people don't want to hear about "Web Services", and others are concerned about the technical issues of setting up Web Services or opening web access to their business applications. Using e-mail to exchange data, you can do all of this without using uncomfortable technologies.

© 2006 Nebula Research and Development

 
 

Home | About Us | News | FAQ | Products
Services | Articles | Contact Us | Search Site

E-mail for Product and Service inquiries.
Please report site issues to . Thank you!