MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Funciones para correo externo? (foro/showthread.php?t=5751)

Ikerga 01/06/07 07:07:11

Funciones para correo externo?
 
Hola, buenos dias.

Existe alguna funcion donde se pueda meter los parametros para mandar correo externo?? Tipo "para" "asunto"....
Y como configurarlo, pop3... o lo que sea.
No se si se entiende lo suficientemente claro, soy bastante novato en esto de la programacion, llevo dos semanitas.
Gracias de antemano a tod@s.

nenuke 01/06/07 08:40:38

Hola,

el siguiente ejemplo te muestra como usar la función SO_NEW_DOCUMENT_SEND_API1 para enviar correo externo.
Debes consultar si está habilitado el servicio de envio de correo externo en tu maquina.


report zrich_0003 .

data: maildata type sodocchgi1.
data: mailtxt type table of solisti1 with header line.
data: mailrec type table of somlrec90 with header line.

start-of-selection.

clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.

maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test'.
maildata-obj_langu = sy-langu.

mailtxt-line = 'This is a test'.
append mailtxt.

mailrec-receiver = 'someone@somewhere.com'.
mailrec-rec_type = 'U'.
append mailrec.

call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'RAW'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
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 SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.


Un saludo.

Ikerga 01/06/07 09:35:41

Gracias nenuke.
He intentado hacerlo y no me envia nada, hay que hacer algun cambio mas aparte de poner la direccion de correo a la que quieres mandar el mail??
Gracias!

nenuke 01/06/07 11:44:36

Hola,

verificaste en la transacción SOST si t ha generado algun objeto? o si está en tu bandeja de salida en la transacción SO01.??
A mi si que me lo envía...

Te adjunto otro código de ejempl que tenía por aki ;)


*&---------------------------------------------------------------------*
*& Report ZSENDEMAIL *
*& *
*&---------------------------------------------------------------------*
*& Ejemplo para enviar email via SAPCONNECT *
*& *
*&---------------------------------------------------------------------*
REPORT zsendemail .

PARAMETERS: psubject(40) type c default 'Hello',
p_email(40) type c default 'alguien@hotmail.com' .

data: it_packing_list like sopcklsti1 occurs 0 with header line,
it_contents like solisti1 occurs 0 with header line,
it_receivers like somlreci1 occurs 0 with header line,
it_attachment like solisti1 occurs 0 with header line,
gd_cnt type i,
gd_sent_all(1) type c,
gd_doc_data like sodocchgi1,
gd_error type sy-subrc.

data: it_message type standard table of SOLISTI1 initial size 0
with header line.

***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.

Perform populate_message_table.

*Envía mensajes a email externo, no está totalmente enviado hasta ejecutar
*el programa(rsconn01)
PERFORM send_email_message.

*Instrucciones de envío para SAPCONNECT para enviar email(rsconn01)
perform initiate_mail_execute_program.


*&---------------------------------------------------------------------*
*& Form POPULATE_MESSAGE_TABLE
*&---------------------------------------------------------------------*
* Adds text to email text table
*----------------------------------------------------------------------*
form populate_message_table.
Append 'Email line 1' to it_message.
Append 'Email line 2' to it_message.
Append 'Email line 3' to it_message.
Append 'Email line 4' to it_message.
endform. " POPULATE_MESSAGE_TABLE


*&---------------------------------------------------------------------*
*& Form SEND_EMAIL_MESSAGE
*&---------------------------------------------------------------------*
* Send email message
*----------------------------------------------------------------------*
form send_email_message.
* Fill the document data.
gd_doc_data-doc_size = 1.

* Populate the subject/generic message attributes
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SAPRPT'.
gd_doc_data-obj_descr = psubject.
gd_doc_data-sensitivty = 'F'.

* Describe the body of the message
clear it_packing_list.
refresh it_packing_list.
it_packing_list-transf_bin = space.
it_packing_list-head_start = 1.
it_packing_list-head_num = 0.
it_packing_list-body_start = 1.
describe table it_message lines it_packing_list-body_num.
it_packing_list-doc_type = 'RAW'.
append it_packing_list.

* Add the recipients email address
clear it_receivers.
refresh it_receivers.
it_receivers-receiver = p_email.
it_receivers-rec_type = 'U'.
it_receivers-com_type = 'INT'.
it_receivers-notif_del = 'X'.
it_receivers-notif_ndel = 'X'.
append it_receivers.

* Call the FM to post the message to SAPMAIL
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = gd_doc_data
put_in_outbox = 'X'
importing
sent_to_all = gd_sent_all
tables
packing_list = it_packing_list
contents_txt = it_message
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.

* Store function module return code
gd_error = sy-subrc.

* Get it_receivers return code
loop at it_receivers.
endloop.
endform. " SEND_EMAIL_MESSAGE


*&---------------------------------------------------------------------*
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
*&---------------------------------------------------------------------*
* Instructs mail send program for SAPCONNECT to send email.
*----------------------------------------------------------------------*
form initiate_mail_execute_program.
wait up to 2 seconds.
if gd_error eq 0.
submit rsconn01 with mode = 'INT'
with output = 'X'
and return.
endif.
endform. " INITIATE_MAIL_EXECUTE_PROGRAM

Ikerga 01/06/07 12:24:31

Gracias de nuevo nenuke. Ya probare esto nuevo, es viernes y ahota terminamos asike el lunes mas y mejor.
Al final he pedido sopitas al jefe y me lo ha solucionado el. jeje
Te lo agradezco de nuevo.
Dame tiempo y algun dia quiza pueda ayudarte yo.
:D


Husos Horarios son GMT. La hora en este momento es 23:48:08.

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