API Documentation

BMailMessage

BMailMessage

The BMailMessage class provides an easy way to send e-mail messages. If you want to do it the hard way, look up the SMTP RFC and start plodding your way through the Network Kit documentation. You’ll get it working one of these days.

Or you can sail right on through and be sending e-mail from your own applications in a matter of minutes using your friend, the BMailMessage.

Constructing a Mail Message

To send an e-mail, you simply construct a new BMailMessage object, add a “To” header field, add the content, and send the message on its way. For example:

BMailMessage *mail;
char *message;

mail = new BMailMessage();
mail->AddHeaderField(B_MAIL_TO, "bob@uncle.com");
mail->AddHeaderField(B_MAIL_SUBJECT, "Hi");
message = "Hi, Uncle Bob!";
mail->AddContent(message, strlen(message));

This is a pretty basic message. The subject is “Hi,” the message is sent to “bob@uncle.com,” and the message body is “Hi, Uncle Bob!”

You can add other fields, including carbon-copy (CC) and blind-carbon-copy (BCC) fields, and you can add attachments. For example, if you want to also attach a file called /boot/home/file.zip, you can do the following:

mail->AddEnclosure("/boot/home/file.zip");

Once your message has been constructed, you can send it by calling Send():

mail->Send();

That’s the basic technique behind sending e-mail under the BeOS. The mail daemon also fetches incoming mail from a POP server, but you can’t use the BMailMessage class to read these messages; you use the BeOS BQuery and BNode classes to locate messages of interest and obtain information about them. See “Querying Mail Messages” for more information.