Mail Senden klappt nicht

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Mail Senden klappt nicht

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
Hallo Zusammen,

ich habe bei uns eine Klasse geschrieben, welche Mails versendet. Eigentlich kein Problem. Haben die Klasse in 3 Programmen schon im Einsatz und funktioniert super.
Allerdings habe ich jetzt einen alten FuBa umgeschrieben, bzw. etwas vereinfacht und versucht diese Klasse zu verwenden.

Aber hier funktioniert es einfach nicht. Warum auch immer. Ich habe im vergleich zu den anderen Mails ein paar kleine Unterschiede.
Einer davon ist, dass ich den Inhalt als Binary code einschreibe - was aber schon funktioniert hat. In der Klasse sieht das dann so aus:

Code: Alles auswählen.

    CASE im_type.
      WHEN 'RAW'. " wird sonst verwendet 
*   Dokument erzeugen
        mo_document = cl_document_bcs=>create_document( i_type    = im_type
                                                        i_text    = im_body
                                                        i_subject = im_subject ).
      WHEN 'HTM'. " wird vom  'Problem FuBa' verwendet
*   Dokument erzeugen
        mo_document = cl_document_bcs=>create_document( i_type    = im_type
                                                        i_hex     = im_hex
                                                        i_subject = im_subject ).
    ENDCASE.
    mo_send_request->set_document( mo_document ).
ein weiterer Unterschied ist, dass ich bei meinem send nicht's sofort weg sende, sondern die Mail einfach so sende, hier jetzt mal die Send Methode:

Code: Alles auswählen.

        TRY.
        mo_send_request->set_send_immediately( iv_immadiately ).
        mo_send_request->send( ).
      CATCH cx_send_req_bcs.
        RAISE email_error.
    ENDTRY.
    COMMIT WORK.
Im FuBa schaut das senden dann so aus: ( Mail adressen rausgestrichen )

Code: Alles auswählen.

     
      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
          text   = lv_html
        IMPORTING
          buffer = lv_xhtml
        EXCEPTIONS
          failed = 1
          OTHERS = 2.

      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer     = lv_xhtml
        TABLES
          binary_tab = lt_hex.
...
...
...
 CREATE OBJECT lo_mail.

      lo_mail->set_sender( iv_smtpadr = '---' ).
      lo_mail->add_recipient( iv_smtpadr = '---' ).
      lo_mail->add_recipient( iv_smtpadr = '---' ).
      lo_mail->set_subject( lv_subject ).
      lo_mail->set_content( im_type = 'HTM' im_hex = lt_hex im_subject = lv_subject ).
      lo_mail->send( ).

    CATCH cx_bcs INTO lox_bcs_exception.
      lv_message = lox_bcs_exception->get_text( ).
      MESSAGE e000(su) WITH lv_message.
  ENDTRY.
set_sender sowie die add_recipient methoden laufen auch super durch ohne fehler zu werfen oder sonstiges.
Was mich wundert, es wird halt kein Eintrag in die SOST geschrieben, sodass ich eventuell einen überblick hätte was hier falsch läuft, bzw. richtig...

kann man mir hier vielleicht helfen .. ich bin echt ein wenig verzweifelt...

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Mail Senden klappt nicht

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
wieso verwendest du bei cl_document_bcs=>create_document bei HTML-Mail I_HEX und nicht ganz normal I_TEXT?

Code: Alles auswählen.

        DATA(lo_document) = cl_document_bcs=>create_document(
                              i_type = 'HTM'
                              i_text = lt_mailtext
                              i_subject = iv_title ).
hatte das in einem meiner Reports auch mal in diesem Format senden müssen und das funktioniert so auch wie gewünscht.
Aber ich hätte ja auch erwartet, dass man in SOST etwas sieht.

Re: Mail Senden klappt nicht

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
SaskuAc hat geschrieben:Was mich wundert, es wird halt kein Eintrag in die SOST geschrieben, sodass ich eventuell einen überblick hätte was hier falsch läuft, bzw. richtig...
Hast du im Programmlauf danach vielleicht irgendwo ein ROLLBACK WORK drinnen oder es mit einem expliziten COMMIT WORK schon versucht?
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Mail Senden klappt nicht

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
@zzcpak z. B. bei HTML Text musst du den HEX-Parameter nehmen.
@a-dead-trousers es gab keinen Rollback und es gab auch explizit commit work.

Allerdings habe ich inzwischen den Fehler gefunden. Es liegt daran, dass nebenbei noch andere Background Tasks in der PA30 laufen, d. h. die Tasks haben sich überschnitten und somit ist das programm mit den commits nicht klar gekommen. Jetzt habe ich allerdings eine VERDAMMT WUNDERVOLLE Lösung gefunden.

Und zwar lösche ich jetzt die E-Mail Klasse und nehme stattdessen CL_BCS_MESSAGE her, welche eine wirklich super funktioniert! Und, im gegensatz zu CL_BCS kann sie "in update task" aufgerufen werden ohne probleme zu verursachen. Dazu muss nur eine Methode mit ner flag dieser Klasse aufgerufen werden und schon funktioniert alles wunderbar.

Werde tatsächlich nur noch CL_BCS_MESSAGE zum mailsenden verwenden. Ab dem nächsten Release ( also firmenintern ) wird nichts anderes mehr zum mailsenden verwendet!

Folgende Benutzer bedankten sich beim Autor SaskuAc für den Beitrag:
zzcpak


Re: Mail Senden klappt nicht

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
SaskuAc hat geschrieben:@zzcpak z. B. bei HTML Text musst du den HEX-Parameter nehmen.
muss man nicht. Geht auch mit normalem Text

Code: Alles auswählen.

DATA:
  go_mail         TYPE REF TO cl_bcs_message,
  lv_mail_content TYPE string.

CREATE OBJECT go_mail.

go_mail->set_subject( 'HTML Mail' ).

lv_mail_content = '<html><style>h3 { color: blue; }</style>' &&
                  '<h3>Überschrift in Blau</h3>' &&
                  '<p>noch a bisserl text</p></html>'.

go_mail->set_main_doc(
           iv_contents_txt = lv_mail_content
           iv_doctype      = 'HTM' ).

go_mail->add_recipient( '<deinemail@adresse.ext>' ).

DATA(gt_error) = go_mail->send( ).
Aber die Klasse CL_BCS_MESSAGE war mir auch noch nicht geläufig. Scheint mir etwas einfacher zu handhaben.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
5392
Views
Int. Tab. per Mail als Excel (CSV) senden
von reinhold_j » 13.04.2006 13:13 • Verfasst in ABAP® Core
1
Antw.
2363
Views
Mail aus SAP senden mit Anhang
von Gast » 30.01.2006 15:09 • Verfasst in ABAP® Core
7
Antw.
6963
Views
E-Mail senden aus Programm
von Ibiza90 » 30.09.2014 07:42 • Verfasst in ABAP Objects®
2
Antw.
5655
Views
Mail an Verteilerliste senden
von Dyrdek » 07.12.2017 15:46 • Verfasst in ABAP® für Anfänger
1
Antw.
1866
Views
IDoc: Fehler per Mail senden
von H0schie » 26.04.2005 08:50 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Lukas Sanders 2 / 792
Dialog-Container mit Toolbar/Status
vor 15 Stunden von black_adept gelöst 21 / 2619

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Lukas Sanders 2 / 792
Dialog-Container mit Toolbar/Status
vor 15 Stunden von black_adept gelöst 21 / 2619

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2404
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 8987