Con este código podremos enviar de forma sencilla un correo a una dirección e-mail externa.
Hay que tener configurado el SAPconect para que el envío se haga de forma inmediata.
DATA: BEGIN OF i_text OCCURS 0.
INCLUDE STRUCTURE soli.
DATA: END OF i_text.
DATA: wspoolnumber LIKE sy-spono ,
wmailname LIKE sood1-objnam,
wsubject LIKE sood1-objdes ,
wrecepient(40) TYPE c ,
wdli LIKE soos1-dlinam.
DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,
objpara LIKE selc OCCURS 0 WITH HEADER LINE,
receivers LIKE soos1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_receivers OCCURS 0.
INCLUDE STRUCTURE receivers.
DATA: END OF i_receivers.
wsubject = 'Entrega numero....1234567890.'.
wrecepient = 'tu_correo@algo.com'.
object_hd_change-objla = sy-langu.
object_hd_change-objnam = wmailname.
object_hd_change-objdes = wsubject.
object_hd_change-objsns = 'F'.
object_hd_change-vmtyp = 'T'.
object_hd_change-skips = 'X'.
object_hd_change-acnam = 'SP01'.
object_hd_change-objcp = 'X'.
REFRESH i_text.
CLEAR i_text.
i_text-line = 'Texto del mensaje'.
APPEND i_text.
REFRESH i_receivers.
CLEAR i_receivers.
i_receivers-rcdat = sy-datum.
i_receivers-rctim = sy-uzeit.
i_receivers-recextnam = wrecepient.
i_receivers-recesc = 'U'.
i_receivers-sndex = 'X'. " Express-Mail
APPEND i_receivers.
objpara-name = 'SPI'.
objpara-low = wspoolnumber.
APPEND objpara.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = object_hd_change
object_type = 'RAW'
owner = sy-uname
TABLES
objcont = i_text
receivers = i_receivers
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
forwarder_not_exist = 6
note_not_exist = 7
object_not_exist = 8
object_not_sent = 9
object_no_authorization = 10
object_type_not_exist = 11
operation_no_authorization = 12
owner_not_exist = 13
parameter_error = 14
substitute_not_active = 15
substitute_not_defined = 16
system_failure = 17
too_much_receivers = 18
user_not_exist = 19
originator_not_exist = 20
x_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
WRITE: /'Error al enviar el mail'.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
COMMIT WORK.
Fijaros en la línea donde pone: wrecepient = 'tu_correo@algo.com'. Hay que cambiar la dirección y poner una vuestra.
Saludos...
Yo también tengo un form paa enviar correo externo.
En la version 4.6C el problema es que no funciona, teniendo confirgurado el sistema, tampoco funciona...
Puede que sea problema de configuración::....no lo creo.
Puedes decirme en que versión trabajas?
Quizás me puedas orientar. ???
La versión en la que estoy trabajando es la ECC 6.0.
Me imagino que la función 'SO_OBJECT_SEND' si que exista en la versión que trabajas. Tal cual está el código escrito a mi me funciona perfectamente.
Un saludo.
Hola,
os dejo otro código que funciona siempre que el usuario tiene en su pc local instalado Outlook, de esta manera podemos enviar un correo sin tener configurado SAPConnect y además si trabajamos habitualmente con Outlook lo tendremos en Elementos Enviados.
Espero que os sirva.
Un saludo.
Report ZMAIL.
DATA: OUTLOOK TYPE OLE2_OBJECT. "Outlook.Application
DATA: ITEM TYPE OLE2_OBJECT. "Outlook.MailItem
DATA: LATTACH TYPE OLE2_OBJECT . "Outlook.Attachement
DATA: SUBJECT(255) TYPE C.
*
*Enviar mail
CREATE OBJECT OUTLOOK 'outlook.application'.
CALL METHOD OF OUTLOOK 'CreateItem' = ITEM
EXPORTING
#1 = '0'.
SET PROPERTY OF ITEM 'To' = 'la dirección de correo a la que queremos enviar'.
* Si queremos rellenar el cuerpo del mensaje
* OPCION 1:
* LOOP AT body_tab INTO wa_bodytab.
* SET PROPERTY OF omail 'Body' = wa_bodytab.
* ENDLOOP.
* OPCION 2:
* SET PROPERTY OF item 'Body' = ''.
SET PROPERTY OF ITEM 'Subject' = 'Asunto del correo'.
CALL METHOD OF ITEM 'Attachments' = 'Ruta al fichero si queremos adjuntar alguno'.
CALL METHOD OF LATTACH 'Add'
EXPORTING
#1 = NOMBRE.
CALL METHOD OF ITEM 'Send'.
FREE OBJECT ITEM.
FREE OBJECT OUTLOOK.
FREE OBJECT LATTACH.
LA verdad este script está de LUUUJO!!!!
lo probé...claro configuré...el SAPconect y listo.
así que Muxas gracias.
Muchas gracias por postear el script
no sabia como hacerlo!
muy buena la info del foro para novatos como yo!!!!!
saluditos
adios
Excelentes aportaciones, Muchas gracias.
Saludos.