2013-03-04 5 views
2

앞서 비슷한 질문을 시도했지만 앞으로 나아갈 수 없었습니다. 그래서 나는 새로운 테스트를했고 여기에 새로운 질문이 있습니다 :Seaside + Gemstone에서 메일 보내기 "메시지 : NotUnderstood가 발생했습니다 (오류 2010). UndefinedObject가 # 'isEmpty'를 인식하지 못합니다."

나는 동일한 기계에 PHARO 1.4와 GEMSTONE 3.0.1.2의 아주 새로운 설치를했습니다. (Linux CENTOS). 유리 작업 (1.0 베타 8.7.4)의 최신 버전 Gemtools의 최신 버전 (1.0 베타 87)를 사용하여 보석에 해변을 3.0.7.1 Pharo 3.0과 버전에 부하.

나는 작업 공간을 열어 평가 :

(WAEmailMessage 
    from: (WAEmailAddress address: '[email protected]' username: 'fromMe') 
    to: (WAEmailAddress address: '[email protected]' username: 'shyam') 
    subject: 'Email Test') 
     body: 'This is a Test Email sent'; 
     send. 

는 (보석의 기본 메일 호스트는 "메일 호스트"있는 그대로 BTW, 나는 /etc/hosts 파일 파일 127.0.0.1 localhost mailhost에 다음 행을 추가).

은 Pharo에 메시지가 전송되고 보석에 나는 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]. 

이유 resultnil을 반환되고에서, 제대로 받았다.

위의 줄에 루프 대신 들어가는 MAC OS X에서도 유사한 결과가 나타났습니다.

tcpdump -X -i lo tcp port 25과 WireShark, 을 사용하여 GEMSTONE의 경우 패킷이 PHARO에 대해 올바르게 교환되는 동안 NO 활동을 보았습니다.

분명히, 나는 두 개의 서로 다른 시스템에서 잘못 이해할 수있는 무언가를 잘못하고있다.

아이디어가 있으십니까?

감사합니다.

Shyam.

답변

1

resultnil이므로 #readString:nil입니다.

피어가 데이터를 보내지 않은 것으로 보입니다. 이미 포트 25에 대한 활동이 없다는 것을 추적 했으므로 SMTP 매개 변수가 맞는지 확인하십시오.

Seaside-Email에는 SMTP 서버를 구성하는 데 사용할 수있는 코드가 포함되어 있습니다. 당신이 당신의 해변 응용 프로그램 seasideApp을 감안할 때, 다음과 같은 작업을 수행 할 수 있습니다 #smtpServersmtpPortGRPlatform>>#seasideDeliverEmailMessage:의 보석 버전에서 사용되는 것과 방법은 설명 구성해야

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. 

참고. 나는 의도적으로 으로 선택하지 않았다. GemStone 기본값을 사용한다.

또한 SMTP 매개 변수를이 방법으로 설정하면 여러 플랫폼에서 작업 할 수 있습니다. 그렇지 않으면 저에게 직접 연락하십시오.

+0

답장을 보내 주셔서 감사합니다. 위와 같이 설정하고 PHARO와 GEMSTONE 모두 위의 설정을 고려합니다. Pharo는 작동하지만 GEMSTONE의 문제는 여전히 남아 있습니다. 결국, 내가 GEMSTONE에서 그것을 볼 수 준의 end_ 유념하라 실행하는 방법은 다음과 같습니다 '센드 >> CONNECTTO : 에 : ' 그래서, ** 보석 기본값 ** 또는 ** 해변 기본값을 사용할지 여부 * * 위에서 설명한대로 매개 변수로 _in_가는 것은 동일합니다. 즉, portnumber가 25이고 호스트가 "localhost"입니다. @ 토비아스, 어떻게하면 "직접"연락 드릴 수 있습니까? –

+0

@ShyamSundaresan이 IRC에서 크로노로 찾았습니다. irc : //irc.parcplace.net/smalltalk – Tobias

+0

감사합니다. IRC를 처음 사용했지만 MAC 클라이언트를 다운로드하고 #smalltalk 채널에 "가입"하여 메시지를 보냈습니다. . –