Code: Alles auswählen.
FORM SEND_MAIL .
CONSTANTS:
gc_subject TYPE so_obj_des VALUE 'Anzhal Essenscheks',
gc_raw TYPE char03 VALUE 'RAW'.
DATA:
gv_sent_to_all TYPE os_boolean,
gv_email TYPE adr6-smtp_addr,
gv_text TYPE bcsy_text,
gr_send_request TYPE REF TO cl_bcs,
gr_bcs_exception TYPE REF TO cx_bcs,
gr_recipient TYPE REF TO if_recipient_bcs,
gr_sender TYPE REF TO cl_sapuser_bcs,
gr_document TYPE REF TO cl_document_bcs,
lv_xlsx TYPE XSTRING,
lt_xml_tab type solix_tab,
lv_xml_length type i,
lv_xml_length_c type sood-objlen.
TRY.
"Create send request
gr_send_request = cl_bcs=>create_persistent( ).
"Email FROM...
gr_sender = cl_sapuser_bcs=>create( sy-uname ).
"Add sender to send request
CALL METHOD gr_send_request->set_sender
EXPORTING
i_sender = gr_sender.
"Email TO...
gv_email = p_mail.
gr_recipient = cl_cam_address_bcs=>create_internet_address( gv_email ).
"Add recipient to send request
CALL METHOD gr_send_request->add_recipient
EXPORTING
i_recipient = gr_recipient
i_express = 'X'.
****** ---XLSX holen und aufbereiten---------------------------------------*
**********************************************************************
lv_xlsx = lo_alv_table->to_xml(
xml_type = if_salv_bs_xml=>c_type_xlsx
xml_flavour = if_salv_bs_c_tt=>c_tt_xml_flavour_full "C_TT_XML_FLAVOUR_EXPORT
).
**********************************************************************
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_xlsx
IMPORTING
output_length = lv_xml_length
TABLES
binary_tab = lt_xml_tab
EXCEPTIONS
others = 1.
lv_xml_length_c = lv_xml_length.
"Email BODY
APPEND 'Tabelle mit Anzahl der Essenschecks' TO gv_text.
gr_document = cl_document_bcs=>create_document(
i_type = gc_raw
i_text = gv_text
i_length = '12'
i_subject = gc_subject ).
"Add document to send request
gr_document->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'xls'
i_attachment_subject = 'Essenschecks.xlsx'
i_att_content_hex = lt_xml_tab
I_ATTACHMENT_SIZE = lv_xml_length_c ).
CALL METHOD gr_send_request->set_document( gr_document ).
"Send email
CALL METHOD gr_send_request->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = gv_sent_to_all ).
IF gv_sent_to_all = 'X'.
* WRITE 'Email sent!'.
ENDIF.
"Commit to send email
COMMIT WORK.
"Exception handling
CATCH cx_bcs INTO gr_bcs_exception.
* WRITE:
* 'Error!',
* 'Error type:',
* gr_bcs_exception->error_type.
ENDTRY.
ENDFORM. " SEND_MAIL
Das Coding verwende ich in einer ähnlicher Form selbst, daran kann es also nicht liegen. Ich denke eher an ein Konfigurationsproblem der Basis Komponenten für den Email-Versand.Dyrdek hat geschrieben:Habe einen Vorschlag von einem Kollege erhalten aber aus irgendeinem Grund wird keine E-Mail versandt, obwohl der Bool-Wert für versendet auf True steht. :/
Dafür schaut man doch mittels der TA SOST nach.a-dead-trousers hat geschrieben:Ist der Job für den Email-Versand eingerichtet? Ist der Email-Versand am System überhaupt eingerichtet? Ist für alle User ein zugehöriger SAPOffice-User angelegt worden? "Vertraut" (Trusted-Beziehung) der Mail-Server dem SAP-System und den darauf eingerichteten Benutzern?
Code: Alles auswählen.
call method lr_send_request->set_send_immediately
exporting
i_send_immediately = 'X'.
Code: Alles auswählen.
gr_document->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'xls'
i_attachment_subject = 'Essenschecks' "ohne Dateiendung
i_att_content_hex = lt_xml_tab
i_attachment_header = |&SO_FILENAME= Essenschecks.xlsx| "zusätzlich nochmal mit richtiger Dateiendung
I_ATTACHMENT_SIZE = lv_xml_length_c ).
Die TA kannte ich nicht. Hab das immer an die Basis-Truppe weiterdelegiert.JHM hat geschrieben:Dafür schaut man doch mittels der TA SOST nach.a-dead-trousers hat geschrieben:Ist der Job für den Email-Versand eingerichtet? Ist der Email-Versand am System überhaupt eingerichtet? Ist für alle User ein zugehöriger SAPOffice-User angelegt worden? "Vertraut" (Trusted-Beziehung) der Mail-Server dem SAP-System und den darauf eingerichteten Benutzern?