PDA

Ver la Versión Completa : Mandar Mail


fvergara
23/09/09, 00:27:15
atraves de abap gracias

gandy1414
23/09/09, 09:27:51
ai va eso
Con la función SO_DOCUMENT_SEND_API1 se pueden enviar mails desde nuestros programas.
Hay que tener en cuenta que una vez que se ejecuta la función, el email debe ser liberado con la transacción SCOT.

fvergara
23/09/09, 17:04:33
Muchas gracias maestro.. espero estar en contacto ante cualquier duda

fvergara
29/09/09, 22:23:17
Aun no puedo entender es posible q puedas enviarme un ejemplo de como enviar un correo via programa incluso q pueda adjuntar un archivo os agradecere mucho

Frank

eljota
30/09/09, 16:40:09
Hola,

te dejo un ejemplo para enviar un mail utilizando la función que citaron anteriormente. No lo he hecho adjuntando archivos, tendría que verse si esa función tmb tiene la opción d adjuntar un archivo

DATA: LT_MAILSUBJECT TYPE SODOCCHGI1.
DATA: LT_MAILRECIPIENTS TYPE STANDARD TABLE OF SOMLREC90 WITH HEADER LINE.
DATA: LT_MAILTXT TYPE STANDARD TABLE OF SOLI WITH HEADER LINE.
DATA: LT_OBSERV TYPE STANDARD TABLE OF TLINE.
DATA: LS_LINOBS LIKE LINE OF LT_OBSERV.
DATA: L_PEDIDO TYPE CHAR10.
DATA: L_NOMBRE LIKE ADRP-NAME_TEXT .
DATA: L_IMPORTE TYPE CHAR25.
DATA: LD_MENSAJE TYPE STRING.

* Destinatarios
READ TABLE IT_DESTINATARIOS INDEX 1. "En caso de tener lista de destinatarios
IF SY-SUBRC NE 0.
CLEAR LD_MENSAJE.
CONCATENATE 'Error envio correo notificación: Lista de destinatarios no cargada'
INTO LD_MENSAJE SEPARATED BY SPACE.
MESSAGE LD_MENSAJE TYPE 'I'.
ELSE.
LOOP AT IT_DESTINATARIOS.
CLEAR LT_MAILRECIPIENTS .
LT_MAILRECIPIENTS-REC_TYPE = 'U'.
LT_MAILRECIPIENTS-RECEIVER = IT_DESTINATARIOS-CORREO.
APPEND LT_MAILRECIPIENTS .
ENDLOOP.

* Asunto
L_PEDIDO = P_VBELN.
LT_MAILSUBJECT-OBJ_NAME = 'RECPED'.
LT_MAILSUBJECT-OBJ_LANGU = SY-LANGU.
LT_MAILSUBJECT-OBJ_DESCR = 'Asunto mensaje'.

* Contenido del Mensaje
. CLEAR LT_MAILTXT.
LT_MAILTXT = 'Mensaje....'.
APPEND LT_MAILTXT. CLEAR LT_MAILTXT. "se ponen las lineas necesarias y se apendiza en la tabla lt_mailtxt


* Send Mail
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = LT_MAILSUBJECT
TABLES
OBJECT_CONTENT = LT_MAILTXT
RECEIVERS = LT_MAILRECIPIENTS
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8.
IF SY-SUBRC EQ 0.
COMMIT WORK.
* Libera mail de SCOT
"SUBMIT rsconn01 WITH MODE = 'INT' AND RETURN. Comentado para que se libere mediante un Job
ENDIF.

El ejecutar rsconn01 libera el job automaticamente, solo que esto toma algunos segundos, asi que lo puedes comentar y luego liberarlo desde la tx SCOT manualmente o poner un job de liberación

salu2