Отправка почты в seaside+Gemstone "сообщение: NotUnderstood произошло (ошибка 2010), UndefinedObject не понимает #'isEmpty' "

Пробовал с похожим вопросом ранее, но не смог продвинуться. Итак, я сделал новые тесты и вот новый вопрос:

Я сделал совершенно новую установку PHARO 1.4 и GEMSTONE 3.0.1.2 на той же машине. (Linux CENTOS). Загружен приморский 3.0 в Pharo и версия 3.0.7.1 в Gemstone с использованием последней версии Gemtools (1.0 beta 87) с последней версией рабочего пространства Glass (1.0 beta 8.7.4).

Я открыл рабочее пространство и оценил:

(WAEmailMessage
    from: (WAEmailAddress address: 'xx@aa.com' username: 'fromMe')
    to: (WAEmailAddress address: 'shyam@localhost' username: 'shyam')
    subject: 'Email Test')   
      body: 'This is a Test Email sent'; 
      send.

(Кстати, поскольку почтовый хост по умолчанию в Gemstone - "mailhost", я добавил следующую строку в файл /etc/hosts 127.0.0.1 localhost mailhost).

На Pharo сообщение отправлено и получено правильно, а в Gemstone я получаю a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand #'isEmpty' в методе

readSmtpResult
| result firstChar |
[self readWillNotBlockWithin: 5000]
    whileFalse: [GsFile stderr log: 'Waiting for server to write...'].
result := self readString: 500.
result isEmpty   =========================> HERE result is "nil".
    ifTrue: 
        [self log: 'Empty result'.
        ^false].

Причина в том, что result возвращает nil,

Я пытался с похожими результатами также на MAC OS X, который вместо этого пошел в цикле в строках выше.

С помощью tcpdump -X -i lo tcp port 25 и WireShark, я заметил, что для GEMSTONE я не видел активности, в то время как пакеты были правильно обменены на PHARO.

Очевидно, я делаю что-то ужасно неправильное, чтобы ошибиться в двух разных системах.

Любая идея?

Спасибо

Shyam.

1 ответ

result является nil так как #readString: возвращенный nil,

Кажется, что узел не отправляет никаких данных. Как вы уже выяснили, что на порту 25 не происходит никаких действий, вы уверены, что параметры SMTP верны?

Seaside-Email содержит код, который вы можете использовать для настройки вашего SMTP-сервера. Учитывая, что у вас есть заявление на море seasideAppВы можете сделать следующее:

seasideApp configuration
    addParent: WAEmailConfiguration instance.
seasideApp
    preferenceAt: #smtpServer put: 'your.smtp.host';
    preferenceAt: #smtpPort put: 25;
    preferenceAt: #smtpUsername put: 'your.smtp.username.or.nil.if.unecessary';
    preferenceAt: #smtpUsername put: 'your.smtp.password.or.nil.if.unecessary';
    yourself.

Обратите внимание, что #smtpServer а также smtpPort должен быть настроен описанным способом, так как они используются в версии GemStone GRPlatform>>#seasideDeliverEmailMessage:, Я решил не использовать значения по умолчанию GemStone.

Кроме того, настройка параметров SMTP для работы в кроссплатформенном режиме; Если это не так, пожалуйста, свяжитесь со мной напрямую.

Другие вопросы по тегам