Foro de programacion ABAP
Código abierto => Reports => Mensaje iniciado por: oscar en 26 de Julio de 2007, 01:21:53 pm
-
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.