try.
data(msg) = new cl_bcs_message( ).
msg->set_subject( 'My test email' ).
msg->add_recipient(
exporting
iv_address = 'This email address is being protected from spambots. You need JavaScript enabled to view it.'
* iv_commtype = iv_commtype " Communication Type
iv_visible_name = 'WRITE Yours' " Display Name of an Address
* iv_copy = iv_copy " Copy Recipients (None, CC, BCC)
* iv_fax_country = iv_fax_country " Country for Telephone/Fax Number
).
msg->set_sender(
exporting
iv_address = 'This email address is being protected from spambots. You need JavaScript enabled to view it.' " Communication Address (for INT, FAX, SMS, and so on)
* iv_commtype = iv_commtype " Communication Type
iv_visible_name = 'Do not reply ' " Display Name of an Address
* iv_fax_country = iv_fax_country " Country for Telephone/Fax Number
).
msg->set_main_doc(
exporting
iv_contents_txt = |<html><head></head><body><br/><b>TEST MESSAGE</b><br/><br/>|
&& |sample from <a href='http://ABAPblog.com'>ABAPblog.com</a></body></html>|
* iv_contents_bin = iv_contents_bin " Main Document, First Body Part (Binary)
iv_doctype = 'htm' " Document Category
* iv_codepage = iv_codepage " Character Set of a Document
).
msg->set_send_immediately( abap_true ).
msg->send( ).
catch cx_bcs_send into data(ex).
message ex->get_text( ) type 'E'.
endtry.
Send mail in BADI or User-Exit without commiting
Everybody sends mails from SAP, some are still using old FM SO_NEW_DOCUMENT_ATT_SEND_API1 but some CL_BCS class. This class is really powerful but it has one disadvantage - it does commit work, and not only when sending emails but also during adding of attachments. In this case it's really not safe to use this class in BADIs or User-Exits, but there is one replacement for CL_BCS -> CL_BCS_MESSAGE. This class only collects the data, and when send method is run then calling a FM SBCS_SEND with destination NONE, or SBCS_SEND_UPDATE in update task, depending what attributes are passed to the class. It means you can use it also in BADIs or User-Exits where commits are not welcomed.
You can find sample programs in SAP: RSBCS_EXAMPLE_EMAIL or RSBCS_EXAMPLE_EMAIL_SIMPLE, or you can look at this small piece of code bellow to see how it is easy to use this class.
Have fun!