cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Cenário NTB2B server not responding OK to RCPT TO; 501 5.1.3 Invalid address

Former Member
0 Kudos
285

Oi pessoal,

por favor, estamos com esse erro abaixo no "mail receiver" do b2b:

server not responding OK to RCPT TO; 501 5.1.3 Invalid address, encontrei algumas discussões que afirmam que são parâmetros do exchange que devem ser "ajustados" para que funcione este cenário,

inclusive nos nossos ambientes de dev e qas estão funcionando somente neste ambiente que estamos preparando como produtivo não está funcionando esta comunicação. A única diferença dentre este ambiente e os demais que funcionam é que este ambiente funciona em cluster.

Estamos no NW7.4 SP20.

Nosso time de exchange / network afirmou que está tudo de acordo.

alguém já se deparou com esse erro?

obrigado!!!

Accepted Solutions (1)

Accepted Solutions (1)

former_member182503
Active Contributor
0 Kudos

Orival,

Verifique se o endereço do destinatário está correto. Se vocês usarem Mail Package, verifique a tag <To></To> do payload. Se definirem o destinatário via ASMA, verifique no log da mensagem (Dynamic Configuration), assim como a função que retorna o email do destinatário, se ele está retornando um e-mail válido.

Se possível, veja se existe diferença entre destinatários internos(ex. e-mail da empresa) e externos(ex. GMail, Yahoo, etc).

O Mail Server usado em DEV/QAS é o mesmo do utilizado em Produção, onde o erro acontece, certo?

[]'s

JN

Former Member
0 Kudos

Boa tarde Jose,

muito obrigado pela resposta, como estamos preparando este ambiente para ser o produtivo conectamos no ECC QAS para validar os cenários, então o cenário e os e-mails são os mesmos (do cenário que funciona).

mas é justamente o Dynamic configuration, no preenchimento do parâmetro THeaderTO, está ocorrendo um exception na execução do java mapping. O estranho é que somente neste ambiente está ocorrendo o exception, nos demais estão com os mesmos objetos e não ocorre o  erro, verifiquei o processamento da BADI (coloquei um "break dinâmico") e o ABAP é processado corretamente, retorna devidamente o e-mail.

será que o fato de ter uma arquitetura de cluster causa algum erro em na execução dos métodos desse mapping? talvez teria que utilizar outra biblioteca.

obrigado!!!

former_member182503
Active Contributor
0 Kudos

Orival,

Difícilmente esse problema é causado pelo fato do ambiente ser clusterizado ou não. Você pode postar a exception que ocorre no mapping?

Você disse que a determinação do email é feito via BAdI, aquela que gera um anexo na mensagem NTB2B* com o e-mail, certo? Esse anexo está sendo preenchido com o e-mail, da mesma forma como nos outros ambientes?

Poste mais detalhes que vai facilitar a solução do seu problema.    

[]'s

JN

Former Member
0 Kudos

Obrigado,

o processamento do abap está correto (já verifiquei no debug) e o e-mail está correto,

segue o momento em que ocorre o exception :

import java.io.ByteArrayOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Map;

import com.sap.aii.mapping.api.DynamicConfiguration;

import com.sap.aii.mapping.api.DynamicConfigurationKey;

import com.sap.aii.mapping.api.StreamTransformation;

import com.sap.aii.mapping.api.StreamTransformationConstants;

import com.sap.aii.mapping.api.StreamTransformationException;

public class ZB2B_Exit implements StreamTransformation{

                private Map param;

                int c;

                String line = "";

                String tpamb = "";

                String sbj_mail = "";

                String email = "";

                String xml = "";

                public void execute(InputStream in, OutputStream out)

                                               throws StreamTransformationException {

                               try{

                                               //Transforma mensagem em entrada em string ----INICIO                                       

                                               ByteArrayOutputStream inpxml = new ByteArrayOutputStream();

                                               while ((c = in.read()) != -1)

                                                               inpxml.write(c);

                                               xml = inpxml.toString("UTF-8");

                                               //Obtendo dados para o envio de e-mail

                                               String idNFe    = "";

                                               String numeroNF = "";

                                               String cnpj     = "";

                                               idNFe = xml.substring(xml.indexOf("<chNFe>")+7,xml.indexOf("</chNFe>"));

                                               if ((xml.substring(xml.indexOf("@AMB=")+5,xml.indexOf("@EMAIL="))).equalsIgnoreCase("HOM")) {

                                                               tpamb = "<tpAmb>2</tpAmb>";

                                                               sbj_mail = "Homolo…”

                                               } else {

                                                               tpamb = "<tpAmb>1</tpAmb>";

                                                               sbj_mail = "NFe…";

                                               }

                                               email = xml.substring(xml.indexOf("@EMAIL=")+7, xml.indexOf("@END</tpAmb>"));

                                               //Fill the dynamic configuration for the to field in the mail adapter

                                               DynamicConfiguration conf = (DynamicConfiguration) param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

                                               DynamicConfigurationKey keyTo = DynamicConfigurationKey.create(

                                                                              "http://sap.com/xi/XI/System/Mail", "THeaderTO");

                                               conf.put(keyTo, email);

                                               DynamicConfigurationKey sbj = DynamicConfigurationKey.create(

                                                                              "http://sap.com/xi/XI/System/Mail", "THeaderSUBJECT");                                      

                                               conf.put(sbj, sbj_mail);

                                               xml = xml.replaceFirst("<tpAmb>@AMB=.*@END</tpAmb>", tpamb.toString());

                                               out.write(xml.getBytes("UTF-8"));

                               }catch(Exception ex){

                                               email = "ERRO_NFE@... ";

                                               //Fill the dynamic configuration for the to field in the mail adapter

                                               DynamicConfiguration conf = (DynamicConfiguration) param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

                                               DynamicConfigurationKey keyTo = DynamicConfigurationKey.create(

                                                                              "http://sap.com/xi/XI/System/Mail", "THeaderTO");

                                               conf.put(keyTo, email);

                                               DynamicConfigurationKey sbj = DynamicConfigurationKey.create(

                                                                              "http://sap.com/xi/XI/System/Mail", "THeaderSUBJECT");                                      

                                               conf.put(sbj, sbj_mail);

                                               try{

                                                               out.write(xml.getBytes("UTF-8"));

                                               }catch(Exception ex2){

                                                               ex.printStackTrace();

                                               }

                                               ex.printStackTrace();

                               }                                                            

                }

                public void setParameter(Map param) {

                               this.param = param;

                }

                public static void main(String[] args) throws Exception{

                               InputStream in = new FileInputStream("C:/teste_in/ln");

                               OutputStream out = new FileOutputStream("C:/teste_out/OUT.xml");

                               new ZB2B_Exit().execute(in, out);

                }

}

former_member182503
Active Contributor
0 Kudos

Orival,

O erro pode estar acontecendo por conta da combinação String.substring() + String.indexOf() onde o indexOf retorna -1 por não ter encontrado a String procurada;

No trace desta mensagem não consta o stackTrace da Exception do Mapping? Se sim, poste-o aqui, talvez ajude.

Se você tiver o payload que está sendo usado e dando problema, você poderia testar o Java Mapping localmente no NWDS e ver exatamente o ponto onde está falhando.

[]'s

JN

pedro_baroni3
Active Contributor
0 Kudos

Orival, bom dia.

Lembre-se que a BADI pode estar sendo chamada duas vezes, 01 para o Cliente e 01 para a Transportadora, caso o CNPJ da Transportadora esteja ativo para Recebimento de XML (B2B Out).

Se isto estiver ocorrendo pode ser que o e-mail da Transportadora não esteja sendo encontrado.

Envie também o código da sua BADI para ajudar a encontraruma saída.

Abraços.

Baroni

Former Member
0 Kudos

Boa tarde!!

obrigado pelas respostas,

então com relação a BADI acredito que não seja o problema, pois para desencargo coloquei fixo o meu e-mail interno e mesmo assim ocorre o mesmo erro:

Answers (1)

Answers (1)

Former Member
0 Kudos

Oi pessoal,

através do debug no NWDS com o payload do B2B verificamos que é isto mesmo, o erro foi devido a busca da string no xml.

A BADI estava ok, mas descobrimos que foi criado um "enhancement Z" que altera o XML para inserir a substring para a tratativa dos e-mails. E este enhancement estava errado.

muito obrigado pela ajuda

abs