Airxmail, SMTP и crossdomain.xml Путаница - PullRequest
0 голосов
/ 26 мая 2011

Я создал приложение Flex, которое использует airxmail от Coltware для отправки SMTP-сообщений.Он вызывает локальный SMTP-сервер (hmailserver), который пересылает электронную почту соответствующим образом.При запуске в среде Flash Builder все работает, как задумано.Я также могу отправлять электронную почту как локально, так и удаленно с SMTP-сервера, используя telnet, поэтому я знаю, что это не проблема с сервером.

При размещении на самом почтовом ящике, вне графического интерфейса приложенияне удается отправить электронное письмо.Я создал файл crossdomain.xml, чтобы разрешить такой доступ, но я не верю, что он настроен правильно.

Код Flex:

  sender = new SMTPSender();
  sender.setParameter(SMTPSender.HOST,"192.168.10.10");
  sender.setParameter(SMTPSender.PORT,25);  
  sender.setParameter(SMTPSender.AUTH,true);
  sender.setParameter(SMTPSender.USERNAME,"emailuser@domain.com");
  sender.setParameter(SMTPSender.PASSWORD,"password");


  var message:MimeMessage = new MimeMessage();
  message.contentType = ContentType.MULTIPART_ALTERNATIVE;
  var from:INetAddress = new INetAddress("emailuser@server.com","Fake Name");

  message.setFrom(from);
  var toRecpt:INetAddress = new INetAddress(email,username);
  message.addRcpt(RecipientType.TO,toRecpt);

  message.setSubject(subject);


  var partHtml:MimeTextPart = message.createTextPart();
  partHtml.setHtmlText(body);

  sender.send(message);           
  sender.close();

Когда я добавляю прослушиватели для различныхSMTPСобытия, никто из них не стреляет.Я думаю, что это связано с отсутствием разрешений или плохой конфигурацией в файле crossdomain.xml, который настроен как:

<?xml version="1.0" ?> 
  <!DOCTYPE cross-domain-policy (View Source for full doctype...)> 
- <cross-domain-policy>
  <allow-access-from domain="192.168.10.10" to-ports="25" secure="true" /> 
  <allow-access-to domain="192.168.10.10" secure="false" /> 

  </cross-domain-policy>

Я нашел ряд вопросов, подобных этому, но несколько опубликованных ответов,Я убежден, что это что-то очевидное.Любые идеи относительно того, как я могу действовать?

Спасибо!

1 Ответ

0 голосов
/ 26 мая 2011

Местное размещение?если вы не используете 'localhost' или '127.0.0.1', это не локально размещено.Мне кажется, вы пытаетесь подключиться к серверу в вашей сети, но не на компьютере, на котором запущено приложение Air.

Я вполне уверен, что отправитель STMP использует Sockets для подключения к серверу,поэтому я думаю, что вам нужно загрузить ручной файл политики сокетов , но я не уверен на 100%.Возможно, вы захотите попытаться полностью открыть файл междомена (используя вместо этого '*').Есть какие-нибудь ошибки, которые всплывают или просто не подключаются?

...