Reg:Mail Adapter

Hi,
         I have a requiremnt like i need to pick the txt file from the sender side and place that file to the targer. Once the Tarfget file is place i need to send mail with the input file as attachement and body of the mail should have few details from the payload.
In interfface determination i have checked maintian oreder at runtime. ISo when the file is placed then only mail is sent.
The problem is i am able to get the content in the mail bosy. But i am not able to send input file as an attachment.
I have seen many blogs in SDN, but only body or attachemnt is possible at a time. Otherwise i need to do XSLT mapping or java mapping for this..
Can u please help in this issue.
Regards,
Ramana'

You can either have attachment or email-body using the mail adapter....both of them are not supported at the same time (in standard functionality).
Update:
If you are looking for an option then having a JAVA mapping will help you create both body and attachment:
/people/stefan.grube/blog/2007/04/17/xi-mail-adapter-an-approach-for-sending-emails-with-attachment-with-help-of-java-mapping
But the sa,e cannot be achieved using message mapping.
Regards,
Abhishek.
Edited by: abhishek salvi on Mar 18, 2010 4:17 PM

Similar Messages

  • Busines service reg mail adapter

    Hi
    I am working on scenario idoc(sender) to mail(reciever),sender idoc is aleaud,reciever is mail of format mailpackage, i am taking reciever as business service,when i am running the scenario the message is comming into xi,but it is not triggering mail adapter, in reciever mail adapter also i maintained all the parametrs, what could be the possible error, do i need to maintain the reciever mail as business system in sld or i can go ahead with business service. i am sending the mail to my company mail.
    regards
    raghu

    Hi,
    As of NetWeaver04 (XI 3.0), SP15 or NetWeaver04s (XI 7.0) Support Package 06, it is possible to define a security level for certain HTTP-based XI inbounds. This is done in the directory in the corresponding sender channels.
    The following HTTP-based adapters/inbounds are supported:
    Integration Server:
    o XI protocol
    o Plain HTTP adapter
    Adapter Engine:
    o SOAP adapter
    The following HTTP security levels are possible (in ascending order):
    HTTP without SSL
    HTTP with SSL (= HTTPS) without client authentication
    HTTP with SSL (= HTTPS) with client authentication
    HTTPS configuration:
    Note that for the HTTPS security levels with and without client authentication, you must configure the integration server (ABAP WebAS) or the adapter engine (J2EE WebAS) accordingly. This configuration basically affects the following aspects:
    - Installing the SAP Cryptographic Library (both in ABAP and J2EE WebAS)
    - Generating and maintaining certificates for the HTTPS server role
    - Configuring and mapping the client certificates that are used onto the corresponding internal users (in client authentication). In J2EE WebAS, you must select the option "Request Client Certificate" on the tab "Runtime" and "Client Authentication" in visual admin in the dispatcher service "SSL Provider".
    In this regard, see also the SAP Help Portal at http://help.sap.com/ -> Documentation -> SAP NetWeaver -> SAP NetWeaver 2004s (or SAP NetWeaver '04) under SAP NetWeaver Library -> Administrator's Guide -> SAP NetWeaver Security Guide -> Security Guides for NetWeaver according to Usage Types -> Security Guide for Usage Type PI -> SAP NetWeaver Process Integration Security Guide -> Network and Communication Security -> HTTP and SSL.
    SOAP adapter configuration:
    You still have to configure the SOAP adapter, particulary in visual admin. To do this, change the relevant SOAP adapter service sap.com/com.sap.aii.af.soapadapter*XISOAPAdapter in the security provider service (under -> Runtime-> Policy Configurations). Under the Authentication tab set the list of login modules as follows:
    ClientCertLoginModule, SUFFICIENT
    BasicPasswordLoginModule, SUFFICIENT
    You do not need to enter anything specific into the Options column.
    Regards
    Aashish Sinha

  • Reg:Receiver Mail Adapter

    Hi ..
      I am using Mail adapter at reciever side.
    I am using Mail package for this.
    I have selected SMTP as Transport Protocol.
    and I have selected XIPAYLOAD  as Message Protocol
    in URL i ahve given in the below format.
    SMTP://host ip address:port
    I have checked Use Mail Package option.
    In Content Encoding i have selected None.
    While executing the scenario, i am getting the below error in channel monitoring.
    Message processing failed. Cause: com.sap.aii.af.sdk.xi.srt.BubbleException: Failed to call the endpoint  [null "null"]; nested exception caused by: com.sap.aii.af.sdk.xi.srt.BubbleException: Unknown encoding name for the mail content:  [null "null"]
    Thanks,
    Leela

    Hi Suraj,
               I have used the  weblog "/people/stefan.grube/blog/2007/04/17/xi-mail-adapter-an-approach-for-sending-emails-with-attachment-with-help-of-java-mapping
    I got the attached mail and body content separately..
    But  i want to use the java maaping in my UDF. because we are having dependency.Whenever the file is placed in recievr folder, then only we need to send mail.
    so we are doing 1: N mapping. reciever side we used 2 structures. one for file and other is mail xsd.
    and we need the file name and file content dynamically. In the weblog they hardcoded the filename and other details.
    So can you please help in writing the UDF for the java mapping..
    I have removed the code from the java mapping andmodified  as ashown below.
      protected static void copySource(InputStream in, OutputStream out)
         throws IOException {
        int c;
        while ((c = in.read()) != -1) {
          switch (c){      
             case '&': out.write("&".getBytes()); break;   
             case '\"': out.write(""".getBytes()); break;
             case '\'': out.write("'".getBytes()); break;
             case '<': out.write("&lt;".getBytes()); break;
             case '>': out.write("&gt;".getBytes()); break;
             default: out.write(c);
    Is there anything to add ? Can you please suggest.
    Regards,
    Leela

  • Receiver mail adapter - Payload as a Text attachment

    Hi,
    In my proxy to mail adapter scenario, when i want to send payload to email as a Text email, where i need to content conversion in XI (XML to Txt file)
    when i send payload, currently i am receiving as a XML file.
    I try to follow like Rushikesh Deshmukh XI thread: Text Attachment in Mail Adapter  in XI forum(topic)
    I have having following config
    Processing Sequence
    localejbs/CreateAttachment Local Enterprise Bean XML2Plain
    localejbs/sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean Local Enterprise Bean mail
    Module Configuration
    XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
    XML2Plain Transform.ContentType text/plain;charset=utf-8
    XML2Plain xml.Header1000.fieldFixedLengths 100,10,10,30,30,80,80,20,10,10,20,20,30,10,18,240,10,30,18,10
    XML2Plain xml.Header2000.fieldFixedLengths 100,30,40,240
    XML2Plain xml.addHeaderLine 0
    XML2Plain xml.conversionType StructXML2Plain
    XML2Plain xml.recordsetStructure Header1000,Header2000
    Please suggest some solution."
    Could you tell me exactly where i need to do all these setting and
    do i need import localejbs/CreateAttachment Local Enterprise Bean XML2Plain...I mean shall i add same in my processing sequence
    give in detail ? (in Receiver mail adapter Communication channel,  advanced mode additional parameters)
    I tried to follow this also
    http://help.sap.com/saphelp_nw04/helpdata/EN/4e/c153426da9bd30e10000000a155106/frameset.htm
    but i could not find much info on this help.sap.com reg. req.
    Thanks
    Prabaharan

    Hi
    f i create like this Receiver CC (module Tab)
    number: 1
    Module Name: localejbs/CreateAttachment
    Module Type: Local Enterprise Bean
    Module Key: mail
    is it enough? do i need any other setting like this
    Did you deployed CreateAttachment on PI server. As this is not a standard SAP module this is a custom module?
    mail as module key is already used by XIMAILAdapterBean use some other key for CreateAttachment
    Settings are fine for the Module
    Processing Sequence
    localejbs/CreateAttachment Local Enterprise Bean XML2Plain
    localejbs/sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean Local Enterprise Bean mail
    Module Configuration
    XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
    In this:
    Module Key: XML2Plain
    Parameter Name: Transform.Class
    Parameter Value: com.sap.aii.messaging.adapter.Conversion
    is it right?
    Processing sequence is fine
    XML2Plain Transform.ContentType text/plain;charset=utf-8
    XML2Plain xml.Header1000.fieldFixedLengths 100,10,10,30,30,80,80,20,10,10,20,20,30,10,18,240,10,30,18,10
    XML2Plain xml.Header2000.fieldFixedLengths 100,30,40,240
    XML2Plain xml.addHeaderLine 0
    XML2Plain xml.conversionType StructXML2Plain
    XML2Plain xml.recordsetStructure Header1000,Header2000
    can i anyone explain how to these settings?
    Is this key valid to provide inputs to the module check with the code for this module
    This looks like valid for MessageTransformBean ro StrictXMLtoPlainBean
    Thanks
    Gaurav
    Edited by: Gaurav Bhargava on Oct 15, 2008 5:34 AM

  • Error in reciever mail adapter

    Hi all,
           I am testing my reciever mail adapter by sending message from runtime workbench.
    In sxmb_moni i get successfull status.But it is giving following error in reciever mail adapter :
    Message processing failed. Cause: com.sap.aii.af.sdk.xi.srt.BubbleException: Failed to call the endpoint  [null "null"]; nested exception caused by: java.net.UnknownHostException:XYZ
    failed to send mail: java.net.UnknownHostException: XYZ
    where xyz = My microsoft exchange server name  taken from tools->options->mail setups ->Email Accounts -->email tab  here we get microsoft exchange server name.
    Thanks
    Deepak

    Hi  Deepak ,
    Please refer this forum post .. if this helps.
    Reg:Receiver Mail Adapter
    Regards,
    srinivas

  • Dynamic Filename in Receiver mail adapter is it possible without module?

    Hi,
    I need to send the file name in email adapter dynamically.Presently iam getting the filename as untitled.xml in the email .The keep attachments is checked in the mail adapter.
    I need to rename the file based on the input field name and timestamp .for example if i get the input field xxxx then the filename should be set as xxxx + timestamp .xml.I tried to use the UDF for dynamic configuration but it didnot help me out.Please help me.
    Thanks
    Rajesh

    Use below code snippet... It should work. If you want timestamp different change accordingly. Currently I do date followed by time as per my requirement.
    SimpleDateFormat simpledatFormat = new SimpleDateFormat("yyyyMMdd");
    Date date = new Date();
    String datewithYear = simpledatFormat.format(date);
    SimpleDateFormat simpledatFormat1 = new SimpleDateFormat("HHmmss");
    Date date1 = new Date();
    String datewithMs = simpledatFormat1.format(date1);
    DynamicConfiguration conf = ((DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION));
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File" , "FileName");
    String oldFileName=conf.get(key);
    String valueNew;
    if( oldFileName == null){
                           valueNew =oldFileNamedatewithYeardatewithMs+".xml";
    //set the new filename
    conf.put(key, valueNew);

  • Sender Mail Adapter

    Hi,
      I am working on Sender Mail Adapter. I have done the total configuration but unable to sucess the scenarios. In the CC monitoring, it is saying that "Not Intialised" Even though i send and receive the messages from My Lotus Notes Inbox. I activated all the objects.
    I have done the following examples:
    Transport Protocal: POP3
    Message Protocal: XIALL
    Given the URL and UserId and PWD also
    Poll Intevel: 1 (Mins)
    Adapter Status: Active
    Please help to me solve this problem. I already raised the one more thread today but didn't get solutions.
    <b>Note: Do i need to do any setting from the Lotus notes(Mail Server) to diver my messages.</b>
    Thanks in Advance,
    <b>I found the problem with SMTP Address. Can i use the SMTP Url for POP3 or IMP4 protocal. Is there any thing else because if i use the Same SMTP Address, it is giving exception</b>
    Best Regards,
    Vijay
    Message was edited by:
            Gangisetty Vijaya Bhaskarudu
    Message was edited by:
            Gangisetty Vijaya Bhaskarudu

    Hi Gangisetty,
        SMTP is the out going server(for sending mails out) while POP3 is the in coming(receiving mails) server. So for a sender channel, you need to use the POP server details not SMTP.
    cheers
    danus

  • Sender Mail Adapter - forcing content as an attachement

    Hi all,
    We are using the Sender Mail Adapter to pull emails from the inboxes of some users of an exchange server.  We use the Mail Package option.
    We have noticed that the content of the emails are by-default added as attachments when there are no real attachments to the emails.  However the content is not added as an attachment when one or more attachments are present in these emails.
    Is there a way of forcing the Sender Mail Adapter to always add the content as an attachment and keeping the other attachments as well?  and of course maintain the Mail Package message type as the main payload...?
    Many thanks,
    Aldo

    Hi Stefan,
    Thanks for your reply.  I am glad to hear that I am wrong again )
    In your opinion is it possible to force the Outlook Exchange server to add the content attachment every time?  I mean by doing some configuration on it...?
    The reason why we would like to do this is because when - in the content tag of a Mail Package message - we have MIME message parts that are of content-type text/html we are having problems in decoding the html back to a readable format.
    To do this we use the apache QuotedPrintableCodec Java class.
    This works fine when the content type of the message is just text/plain but we get an exception when we try with text/html.
    The exception we get is:
    org.apache.commons.codec.DecoderException: Invalid URL encoding: not a valid digit (radix 16): 13
    I don't know if this is because of the two character sets we have in the payload (utf-8 and iso-8859-1) or if it is for other reasons...
    If you could help me figure out how to forward any HTML email to another system in a readable format it would be great.
    Thanks for your support,
    Aldo

  • Sender Mail Adapter Configuration - Process Multiple Attachments

    Dear sirs,
    I need to process several attachments at the same mail message as individual payloads.
    In default configuration of sender mail adapter only the body of message is used as payload.
    So I added PayloadSwapBean Module at Processing Sequence and it processed the attachment I set in Module Configuration.  I'm not able to process all attachments available, just one attachment is sent to PI pipeline.
    How can I process all attachments of a single mail message?
    Thank you in advance.
    Fabio Purcino

    Hi Jose,
    We are trying to implement reading multiple attachment in sender mail adapter. 
    Our Requirement is : Reading a mail having multiple .xls files. This should be read and converted to payload .
    package multiswap;
    //import com.sap.aii.adapter.xi.ms.XIMessage;
    import com.sap.aii.af.lib.mp.module.*;
    import com.sap.aii.af.lib.trace.Trace;
    import com.sap.aii.af.sdk.xi.mo.Message;
    import com.sap.aii.af.sdk.xi.mo.MessageContext;
    import com.sap.aii.af.sdk.xi.mo.xmb.XMBMessageOperator;
    import com.sap.aii.af.sdk.xi.mo.xmb.XMBPayload;
    import com.sap.aii.af.sdk.xi.util.PayloadType;
    import com.sap.aii.af.service.auditlog.Audit;
    import com.sap.aii.af.service.cpa.*;
    import com.sap.engine.interfaces.messaging.api.MessageDirection;
    import com.sap.engine.interfaces.messaging.api.MessageKey;
    import com.sap.engine.interfaces.messaging.api.Payload;
    import com.sap.engine.interfaces.messaging.api.auditlog.AuditLogStatus;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Locale;
    import javax.ejb.*;
    public class MultiSwapRead
        implements SessionBean, Module
        private static final String VERSION_ID = "$Id: //tc/xpi.af/NW731EXT_07_REL/src/_af_application_ejb_module/ejbm/api/com/sap" +
    "/aii/af/app/modules/PayloadSwapBean.java#1 $"
        private static final Trace TRACE = new Trace("$Id: //tc/xpi.af/NW731EXT_07_REL/src/_af_application_ejb_module/ejbm/api/com/sap" +
    "/aii/af/app/modules/PayloadSwapBean.java#1 $"
        private static final String SIGNATURE_PROCESS = "process(ModuleContext , ModuleData)";
        protected Hashtable cachedChannels;
        protected SessionContext myContext;
        public MultiSwapRead()
            cachedChannels = new Hashtable();
        public void ejbRemove()
        public void ejbActivate()
        public void ejbPassivate()
        public void setSessionContext(SessionContext context)
            myContext = context;
        public void ejbCreate()
            throws CreateException
        public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)
            throws ModuleException
            if(TRACE.beLogged(200))
                TRACE.entering("process(ModuleContext , ModuleData)", new Object[] {
                    moduleContext, inputModuleData
            ModuleData outputModuleData;
            Iterator itr;
            outputModuleData = inputModuleData;
            String chid = moduleContext.getChannelID();
            TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, (new StringBuilder()).append("performing payload swap for channel ").append(chid).toString());
            LookupManager lman = LookupManager.getInstance();
            Channel chan = null;
      try {
      chan = (Channel)LookupManager.getInstance().getCPAObject(CPAObjectType.CHANNEL, chid);
      } catch (CPAObjectNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      } catch (CPAException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
            Direction direction = chan.getDirection();
            String swapkey = moduleContext.getContextData("swap.keyName");
            String keyvalue = moduleContext.getContextData("swap.keyValue");
            Object obj = inputModuleData.getPrincipalData();
            Object pivotedObj = inputModuleData.getSupplementalData("mp.pivoted");
            boolean pivoted = pivotedObj == null || !(pivotedObj instanceof Boolean) ? false : ((Boolean)pivotedObj).booleanValue();
            Message mo = null;
            if(obj instanceof com.sap.engine.interfaces.messaging.api.Message)
                mo = (Message)((com.sap.engine.interfaces.messaging.api.Message)obj);
            } else
            if(obj instanceof MessageContext)
                mo = ((MessageContext)obj).getMessage();
            } else
                TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "no message found");
            if(mo != null && XMBMessageOperator.numberOfPayloads(mo) > 0)
               // String midstr = XMBMessageOperator.getMessageId(mo).toString();
                MessageKey auditkey = new MessageKey(((com.sap.engine.interfaces.messaging.api.Message) mo).getMessageId(), com.sap.engine.interfaces.messaging.api.MessageDirection.INBOUND);
                itr = (Iterator) mo.getAttachments();
                if(swapkey != null && keyvalue != null)
                    StringBuffer textSwappingbyBuf = new StringBuffer();
                    textSwappingbyBuf.append("Swap: swapping by '").append(swapkey).append("' ? '").append(keyvalue).append("'");
                    String textSwappingby = textSwappingbyBuf.toString();
                    TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, textSwappingby);
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.SUCCESS, textSwappingby);
                   while (itr.hasNext()){
                    boolean swappedp = swapPayloads(mo, swapkey, keyvalue);
                    String swappedStatus = swappedp ? "Swap: successfully swapped" : "Swap: no matching payload found";
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.SUCCESS, swappedStatus);
                } else
                    StringBuffer textInvalidBuf = new StringBuffer();
                    textInvalidBuf.append("Swap: parameter missing ");
                    if(swapkey == null)
                        textInvalidBuf.append("swap.keyName");
                    if(swapkey == null && keyvalue == null)
                        textInvalidBuf.append(" and ");
                    if(keyvalue == null)
                        textInvalidBuf.append("swap.keyValue");
                    String textInvalid = textInvalidBuf.toString();
                    TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, textInvalid);
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.WARNING, textInvalid);
            } else
                String messageEmpty = "Swap: message is empty or has no payload";
                TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, messageEmpty);
            return outputModuleData;
        private static boolean swapPayloads(Message mo, String swapkey, String keyvalue)
            swapkey = swapkey.toUpperCase(Locale.ENGLISH);
            keyvalue = keyvalue.toUpperCase(Locale.ENGLISH);
            int ifound = -1;
            for(int i = 0; i < XMBMessageOperator.numberOfPayloads(mo); i++)
                XMBPayload pldi = XMBMessageOperator.getPayload(mo, i);
                String pldivalue = null;
                if(swapkey.equals("PAYLOAD-DESCRIPTION"))
                    pldivalue = pldi.getPayloadDescription();
                } else
                if(swapkey.equals("PAYLOAD-NAME"))
                    pldivalue = pldi.getPayloadName();
                } else
                    pldivalue = pldi.getContentAttribute(swapkey);
                if(pldivalue == null)
                    continue;
                pldivalue = pldivalue.toUpperCase(Locale.ENGLISH);
                if(pldivalue.indexOf(keyvalue) < 0)
                    continue;
                ifound = i;
                break;
            if(ifound >= 0)
                XMBPayload pldfound = XMBMessageOperator.getPayload(mo, ifound);
                if(pldfound.getPayloadType() != PayloadType.APPLICATION)
                    XMBPayload pldapp = XMBMessageOperator.getApplicationPayload(mo);
                    if(pldapp == null)
                        pldfound.setPayloadType(PayloadType.APPLICATION);
                    } else
                        pldapp.setPayloadType(PayloadType.APPLICATION_ATTACHMENT);
                        pldfound.setPayloadType(PayloadType.APPLICATION);
                    TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "successfully swapped");
                return true;
            } else
                TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "no matching found");
                return false;
    We couldn't go further. Please have a look in highlighted code.
    Regards,
    Kesava.

  • Sender Mail adapter encounters MalformedInputException

    I have a sender mail adapter that processes the attached .csv file.  All is working fine.  I use FCC in module to convert the attachment and pass to an IDOC adapter for processing in SAP system.
    My problem is sometimes the sender mail CC fails with ...........
    exception caught during processing mail message[1]; com.sap.aii.af.mp.module.ModuleException: Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
    It only fails with some files.  At the moment when we test we FORWARD the email to our email account.  If I detach the failed email attachment and attach it to a NEW email it will then work.
    So why does it not work when forwarding emails?  But it works when I attach the same file to a new email and send?
    Other threads for this error seem to point to encoding.  But how do I know which to use.  I currently use the following in my module config:
    Transfer.ContentType     application/octet-stream;charset="ISO-8859-1"

    I have this in my configuration:
    localejbs/AF_Modules/PayloadSwapBean   on local
    TRANSFORM
    localejbs/AF_Modules/MessageTransformBean   on local
    txtxml
    TRANSFORM   swap.keyName   payload-name
    TRANSFORM   swap.keyValue   MailAttachment-1
    txtxml   Transfer.ContentType   application/octet-stream;charset="ISO-8859-1"
    txtxml   Transform.Class   com.sap.aii.messaging.adapter.Conversion
    txtxml   Transform.ContentDescription   MailAttachment-1
    txtxml   Transform.ContentDisposition   attachment;filename="MailAttachment-1.bin"
    txtxml   xml.conversionType   SimplePlain2XML
    txtxml   xml.documentName   MT_BCD_INVOICES
    txtxml   xml.documentNamespace   urn://federalmogul.com/BCDTRAVEL/FINGLOBCD001/00
    txtxml   xml.fieldNames   COST_CENTRE,EMPLOYEE_ID,PRODUCT_GROUP,COMP_CODE,BCD_ACCOUNT,INVOICE_DATE,TRAVELER_NAME,TRAVELER_FIRST_NAME,INVOICE_NO,AMOUNT_EXCL_VAT,CURRENCY1,AMOUNT_VAT,CURRENCY2,AMOUNT_DOC_CURRENCY,CURRENCY3
    txtxml   xml.fieldSeparator   ;
    txtxml   xml.lastFieldsOptional   YES
    txtxml   xml.processFieldNames  fromConfiguration
    txtxml   xml.structureTitle   RECORDSET

  • Sender "Mail" adapter - CSV file attachment

    Hi there
    I'm looking for some help in configuring a sender mail adapter that receives ".csv" files. I did read some blogs that mention using the "PayloadSwapBean" module to read the mail attachment instead of the mail content. My problem is to now convert the ".csv" file into a message. Is there a module that I can use ( is it the "MessageTransfomBean" ) and how. Any help would be appreciated.
    Thanks
    Salil

    Hi Salil,
    If you want to send a mail with a body and attachments, the message sender HAS to provide an XI message with attachments. I doubt a CSV file does justice.
    As Renjith said you need to convert CSV to XmL.
    A short description about the Standard Modules:
    MessageTransformationBean is a standard module used to apply the XSLT mapping to the adapter module by using <i>Transform.class</i> ( This xslt mapping is done to create a mail package, Dont confuse with the actual mapping in your case this is NOT for converting csv to xml).
    Also this module can be used to change the name and type of payloads by using <i>Transform.contentType</i>, <i>Transform.contentDisposition</i>, <i>Transform.contentDescription</i>.
    PayloadSwapbean is a standard module for replacing payloads with other payloads (SWAP)
    If you want to give each attachment a certain name use Parameters, <i>swap.keyname</i> for name of the payload and <i>swap.keyvalue</i>.
    I Hope the use of standard modules is understood.

  • Sender Mail Adapter, technical Acknowledgement

    Hi all,
    I have a SMTP --> XI --> Proxy Scenario. For the inbound message I get via SMTP, I'd like to send a technical acknowledgement back to the Sender (via SMTP, too). The acknowledgement has a specific message structure, for example it contains the DocumentID of the inbound message I get via SMTP.
    My idea now is: Within ReceiverDetermination, I configure two receivers:
    1. Backend system for the Inbound Proxy
    2. original Sender System
    Within Interface Determination, I'll do 2 mappings:
    1. Mapping from source message to ABAP proxy interface
    2. Mapping from source message to technical acknowledgement structure
    Then, receiver agreements / receiver communication channels for both interfaces.
    My question now is: is there a more elegant solution then doing the scenario like described above? Maybe something I can do in the Sender Mail Adapter to create the specific technical acknowledgement and sent it back to the sending application?
    Best regards
    Holger

    Hi Holger !
    XI supported acks are not available for your scenariom because the smtp/mail sender cannot request it.
    http://help.sap.com/saphelp_nw04s/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/frameset.htm
    You should create some kind of artificial ack, that should be part of your own protocol. What I meant with the SYNC proxy, is to use its response message as your own defined ack, because it is not supported as is.
    If you call your proxy async, then you will not receive any feedback to use it as ack info.
    Another idea could be to forget the ack per se, and just use define an alert in case of problems with the scenario to send a mail to the specified users.
    Regards,
    Matias

  • Sender Mail Adapter - S/MIME - How to use it?

    Hi guys,
    I am trying to figure out how to use the S/MIME security parameter of the Sender Mail Adapter in PI 7.1.
    Could anyone point me to some useful documentation/examples/blogs ?
    Or perhaps explain what steps are involved when configuring this parameter?
    We are pulling emails from an Microsoft Exchange server.
    Many thanks,
    Aldo

    First of all one sender mail adapter has to be tight with a specific sender email address.
    The email has to be decrypted as whole, you cannot decrypt parts of it.
    Then you store certificates to secure store in J2EE server and point to it in send agreement, this should be equal to HTTPS setup
    Check security guide:
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/f7/c2953fc405330ee10000000a114084/frameset.htm

  • Sender Mail adapter configuration with attachment

    Hi,
    I read the below blog regarding the mail adapter
    /people/michal.krawczyk2/blog/2005/12/18/xi-sender-mail-adapter--payloadswapbean--step-by-step
    I have the same requirement but the attachment file is not an XML, it is CSV file so in the module tab if I change like below is it enough?
    TRANSFORM    swap.keyValue  attachment; filename=u201DMailAttachment-1.csvu201D     (I think MailAttachment-1 is the file name, am I correct?)
    If I change like above is it ok? or any other thing is required, Could you please give me the inputs
    Thanks
    Ramesh

    I have the same requirement but the attachment file is not an XML, it is CSV file so in the module tab if I change like below is
    it enough?
    PayloadSwapBean will ensure that the input to the mapping is from the attachment.....in the blog the attachment is in XML format and hence there was no need for any conversion.....yours is however a CSV file so you need to convert it to XML first and then do the further processing.....you can either use the MessageTransformationBean as shown in this blog:
    /people/gabrielsagayaselvam.panneerselvam/blog/2009/08/31/solve-key-field-problem-using-structplain2xml-in-messagetransformationbean
    Or write your own module code for the conversion.
    Regards,
    Abhishek.

  • Sender Mail Adapter with PayloadSwapBean

    Hello Experts!
    I have a Sender Mail Adapter receiving emails with attachments! I'm using PayloadSwapBean, because I have to manipulate (to do mapping) the XML attachment.
    Sender Mail Adapter Configuration:
    Default Interface Namespace = urn:mynamespace.com
    Default Interface Name = abs_async_myInterface
    swap.keyName = Content-Disposition
    swap.keyName = Content-Description
    swap.keyValue = attachment;filename="MailAttachment-1.xml"
    swap.keyValue = MailAttachment-1
    Well, my problems are:
    1) Although my Default Interface Namespace is urn:mynamespace.com, sometimes the namespace that cames to SXMB_MONI is http://sap.com/xi/XI/System/Mail. In that case, an Receiver Determination error happens.
    2) My XML can be the first (MailAttachment-1), the second (MailAttachment-2), the third (MailAttachment-3), or any other attachment position. Since my swap.keyValue is set to "MailAttachment-1", I'm able to pick the XML only if it is the first attachment.

    Hi Julio,
    Writing an Adapter Module for the same can make your task easy.
    Thanks'
    Sunil Singh

Maybe you are looking for

  • Online order cut off times for next day delivery

    what is the latest time I can order off your web site for next day delivery?thanks

  • Small cusom class with generic dataypes.

    I'm working on a little project for a class in algorithm analysis. I have to use Java to create a simple list data type from scratch (BasicList); it has 8 functions + constructor. The implementation must be self-contained (no import declarations) and

  • Question Mark in Quicktime icon

    When I try to play a clip in Quicktime, all I get is a large question mark. Can anyone help? Thanks... Songstan

  • Velocity demo: error running the import scripts

    I tried to install velocity demo, when I run import scripts (mydemo_schema.dmp) I get the following error: IMP-00010: not a valid export file, header failed verification IMP-00000: Import terminated unsuccessfully Did someone test it successfully ? O

  • Deleting unwanted apps after being hacked

    Someone hacked my account and tried to download items. Now those items are in my downloads and I can't delete them. Anyone know how to delete pending downloads? Thanks!