MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Enviar email sin adjuntos (foro/showthread.php?t=9006)

Impale 12/11/07 10:03:20

Enviar email sin adjuntos
 
Buenas!

Se que por aquí hay algun tema de como enviar mails externos mediante SAP, pero todos ellos son con ficheros adjuntos.

Mi pregunta es si alguin sabe como enviar un email pero que el texto que se quiere enviar salga en el cuerpo del mismo mail, y no dentro de un pdf adjunto (que es lo que más he encontrado).

Gracias!!

Jorge L T 16/11/07 18:38:18

esto funciona

*&---------------------------------------------------------------------*
*& Report Envío de MAIL utilizando objetos OLE para Microsoft Outlook
*& Versión 98 : problemas cuando Outlook no está abierto
*& Versión 2000 : correcto
*&---------------------------------------------------------------------*
*& Siempre en ON-LINE ( como cualquier funcionamiento OLE )
*&---------------------------------------------------------------------*
REPORT YMAIL .

PARAMETERS : P_TO(30),
P_SUBJ(30),
P_BODY(50). "este es el cuerpo del mail

* Include Objetos OLE
INCLUDE OLE2INCL.
*----------------------------------------------------------------*
START-OF-SELECTION.
*lonecesario para recolectar los datos a enviar
*
PERFORM ENVIA-MAIL .

*&---------------------------------------------------------------------*
*& Form ENVIA-MAIL
*&---------------------------------------------------------------------*
*FORM ENVIA-MAIL .
*----------------
DATA: APPOUTLOOK TYPE OLE2_OBJECT.
DATA: APPOUT2 TYPE OLE2_OBJECT.
DATA: APPITEM TYPE OLE2_OBJECT.
DATA: NAMESPACE TYPE OLE2_OBJECT.

* Crear objeto OLE : outlook.application
CREATE OBJECT APPOUTLOOK 'outlook.application' .

* Mensajes vía MAPI
CALL METHOD OF APPOUTLOOK 'GetNameSpace' = NAMESPACE
EXPORTING #1 = 'MAPI'.

* Crea objeto nuevo ITEM ( nuevo mensaje )
CALL METHOD OF APPOUTLOOK 'CreateItem' = APPITEM
EXPORTING #1 = '0'.

* Propiedades TO , SUBJECT y BODY
SET PROPERTY OF APPITEM 'To' = P_TO.
SET PROPERTY OF APPITEM 'Subject' = P_SUBJ.
SET PROPERTY OF APPITEM 'Body' = P_BODY. "aquí lo utilizas

* Envía ITEM
CALL METHOD OF APPITEM 'Send'.

* Libera Espacio del objeto
FREE OBJECT APPITEM.
FREE OBJECT NAMESPACE.

* Cierra Outlook ( solo si se quiere que quede cerrado )
FREE OBJECT APPOUTLOOK.
*
ENDFORM. " ENVIA-MAIL

miguel.cogolludo 21/11/07 08:58:42

hola,prueba esto.

DATA doc_data LIKE sodocchgi1.
DATA object_id LIKE soodk.
DATA objcont LIKE soli OCCURS 10 WITH HEADER LINE.
DATA receiver LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
DATA:it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

DATA: maildata LIKE sodocchgi1.

DATA: mailtxt TYPE TABLE OF solisti1,
linemailtxt TYPE solisti1.

* data for send function
REFRESH objcont.CLEAR objcont.
objcont-line = 'Linea1'.
APPEND objcont.
objcont-line = 'Linea2.'.
APPEND objcont.

* insert mail description
CLEAR maildata.
WRITE 'Cabecera' TO maildata-obj_descr.
* add direc. mail
REFRESH it_receivers.CLEAR it_receivers.
CONCATENATE zmm_006-cliente '"diba.es' INTO dire.
it_receivers-receiver = dire.
it_receivers-rec_type = 'U'.
it_receivers-com_type = 'INT'.
it_receivers-notif_del = 'X'.
it_receivers-notif_ndel = 'X'.
APPEND it_receivers.
* insert receiver (sap name)
*REFRESH receiver.
*CLEAR receiver.
*MOVE: 'mianconu@hotmail.com' TO receiver-receiver,
* 'X' TO receiver-express,
* 'B' TO receiver-rec_type.
*APPEND receiver.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = maildata
put_in_outbox = 'X'
document_type = 'RAW'

* IMPORTING
* new_object_id = object_id
TABLES
object_content = objcont
receivers = it_receivers
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 <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.

Si estas en desarrollo,nomalmente esta capado el envio de email,entonces tienes que obligarlo tu.

COMMIT WORK.
WAIT UP TO 2 SECONDS.
IF sy-subrc EQ 0.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
Tienes que tener un nodo tipo INT y que ademas este configurado con el mismo servidor de exchange.

Pero pruebalo porque seguro que existe el nodo y estara configurado correctamente.

mpg18k 20/09/08 18:46:57

Envio de email sin adjunto
 
Saludos...

He probado estas dos funciones y las dos funcionan, pero la que me sirve para solucionar mi problema es la última sin embargo sigue enviando el cuerpo del email como adjunto en formato PDF, por lo que ocuparia saber si le falta algo para poder realizar el envio sin el adjunto.


Husos Horarios son GMT. La hora en este momento es 15:39:57.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web