#1
|
|||
|
|||
Mail a varios Destinatarios
Buenos dias a todos, le comento que estoy teniendo problemas para enviar correos a Varios destinatarios ya que si le paso como parametro mas de una direccion de correo cancela en programa.
Agradeceria si alguien me puede orientar un poco. Saludos CALL FUNCTION 'SO_DOCUMENT_SEND_API1' EXPORTING document_data = w_doc_data put_in_outbox = 'X' sender_address = ld_sender_address sender_address_type = ld_sender_address_type commit_work = 'X' IMPORTING sent_to_all = w_sent_all TABLES packing_list = t_packing_list contents_bin = t_attachment contents_txt = it_message receivers = t_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. Demian M. Palavecino |
#2
|
|||
|
|||
Que tal,
mirá yo para enviar correos use esta función * Sending the document CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = doc_chng put_in_outbox = 'X' commit_work = 'X' TABLES packing_list = lt_objpack object_header = lt_objhead contents_bin = lt_objbin contents_txt = lt_objtxt receivers = lt_reclist EXCEPTIONS too_many_receivers = 1 document_not_sent = 2 operation_no_authorization = 4 OTHERS = 99. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. donde en la tabla LT_RECLIST le paso los destinatarios (la completé de esta manera). Seguramente vas a tener qe cambiar el campo REC_TYPE proqe yo use una lista de distribución. LOOP AT lt_mails INTO le_mails. lt_reclist-receiver = le_mails-grupo. "NOMBRE DE LA LISTA lt_reclist-express = 'X'. lt_reclist-rec_type = 'C'. "Usa lista de distribución. lt_reclist-copy = 'X'. APPEND lt_reclist. ENDLOOP. saludos! |
#3
|
||||
|
||||
Esa es la buena
La función buena es la que usa Martin89, ya que usa una estructura para los destinatarios a la que puedes añadir todos los que quieras (además puede enviar documentos adjuntos).
Si prefieres seguir usando la tuya tendrás que crearte una tabla interna o rango en el que introducir todos los destinatarios y hacer un loop para ir cambiando el destinatario, pero eso lo que hará es enviar el mismo mail varias veces, no un único mail a todos los destinatarios. Espero que te haya servido de ayuda. Saludos, David. |
#4
|
|||
|
|||
Consulta maestros
Es posible tener un ejemplo de código de abap agradeceria mucho recien me inicio en el tema de abap y no veo un ejemplo mas completo.
Gracias de antemano |
#5
|
|||
|
|||
form rellena_destinatarios
tables receptores structure somlreci1 changing sw_alguno. * data: begin of usu_rec occurs 2, email like zsd_info_interf-email, end of usu_rec. sw_alguno = 'X'. clear receptores. * receptores-receiver = usu_rec-email. receptores-receiver = 'usuario@prueba.com'. receptores-rec_type = 'U'. "dirección internet receptores-express = 'X'. append receptores. sw_alguno = 'X'. clear receptores. * receptores-receiver = usu_rec-email. receptores-receiver = 'usuario@prueba.com'. receptores-rec_type = 'U'. "dirección internet receptores-express = 'X'. append receptores. endform. "rellena_destinatarios * Aqui se acaban de cargar dos destinatarios, también se puede hacer con un loop direccionando a una tabla. * En la parte donde pases la funcíon pasa la tabla de dsitinatarios: call function 'SO_NEW_DOCUMENT_ATT_SEND_API1' exporting document_data = dat_asunto put_in_outbox = 'X' *>>>>>>>>> OJO: cuando es a una dirección externa es necesario activar * el commit work; sino no se enviará nada: commit_work = 'X' * IMPORTING * SENT_TO_ALL = * NEW_OBJECT_ID = tables packing_list = dat_pack object_header = dat_cab contents_bin = dat_bin contents_txt = dat_cuerpo * CONTENTS_HEX = * OBJECT_PARA = * OBJECT_PARB = receivers = receptores " Aquí va la tabla de destinatarios 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. endform. "ENVIA_MENSAJE |
#6
|
|||
|
|||
Saludos a todos y disculpen la intromision , pero ya que estan hablando de esta funcion me parecio pertinente pedir ayuda con este referente , estoy tratando de automatizar la transaccion sost que es donde va el correo una vez que se usa la funcion que se habla aqui , ahora el problema es que por mas que hago la grabacion no procesa el envio , podrian darme algunos tips o decirme como podria hacerlo ( sin neceisdad de job ) porque lo que se quiere que una vez que se envie envie el correo usando la funcion esta salga de una vez sin tener que esperar en sost .
|
#7
|
|||
|
|||
Envio de correo a diferentes destinatarios
Hola a todos yo utilice lo siguiente, saludos
FORM send . DATA lv_texto(30) TYPE c. REFRESH main_text. TRY. * -------- create persistent send request ------------------------ send_request = cl_bcs=>create_persistent( ). * -------- create and set document with attachment --------------- * create document object from internal table with text APPEND 'Pedidos próximos a vencer y vencidos' TO main_text. CONCATENATE 'Grupo de Compras:' gc_tab gv_ekgrp gc_tab INTO lv_texto. APPEND lv_texto TO main_text. APPEND 'El contenido del reporte esta incluido en el archivo anexo' TO main_text. document = cl_document_bcs=>create_document( i_type = 'RAW' i_text = main_text i_subject = 'Pedidos próximos a vencer y vencidos' ). * add the spread sheet as attachment to document object document->add_attachment( i_attachment_type = 'xls' i_attachment_subject = 'Pedidos' i_attachment_size = size i_att_content_hex = binary_content ). * add document object to send request send_request->set_document( document ). * --------- add recipient (e-mail address) ----------------------- * create recipient object LOOP AT t_mailto INTO w_mailto. recipient = cl_cam_address_bcs=>create_internet_address( w_mailto-mailto ). * add recipient object to send request send_request->add_recipient( recipient ). ENDLOOP. * ---------- send document --------------------------------------- sent_to_all = send_request->send( i_with_error_screen = 'X' ). COMMIT WORK. IF sent_to_all IS INITIAL. MESSAGE i500(sbcoms) WITH mailto. ELSE. MESSAGE s022(so). ENDIF. * ------------ exception handling ---------------------------------- * replace this rudimentary exception handling with your own one !!! CATCH cx_bcs INTO bcs_exception. MESSAGE i865(so) WITH bcs_exception->error_type. ENDTRY. ENDFORM. " SEND |
#8
|
|||
|
|||
ALNICO:
Luego de que se ejecute todo el código que genera tu correo agrega el siguiente código y se va a enviar el mismo SUBMIT rsconn01 WITH mode = 'INT' WITH output = 'X' AND RETURN. Saludos cordiales,
__________________
Gustavo A. Biglia Consultor SAP FI |
#9
|
|||
|
|||
hola,
quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1. En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar? Un saludo. |
#10
|
|||
|
|||
duda mail variso destinatarios
hola,
quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1. En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar? Un saludo. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|