MACOSX Lion を搭載した MAC に、最新バージョンの Gemtools (1.0 beta 87 ) と、最新バージョンの Glass Workspace (1.0 beta 8.7.4)および最新バージョンの GEMSTONE: 3.1.0.1 をインストールしました。 これで、次を使用してSeasideをロードしました:
MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [
Gofer project load: 'Seaside30' version: '3.0.7.1'.
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfMetacello';
load.
(Smalltalk at: #ConfigurationOfMetacello) perform: #load.
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfSeasideRest';
load.
].
ConfigurationOfSeasideRest project stableVersion load: 'Tests'
すべて正常に動作しますが、この部分を評価しようとするとシステムが「ハング」します。
(WAEmailMessage
from: (WAEmailAddress address: 'xx@aa.com' username: 'fromman')
to: (WAEmailAddress address: 'shyam1.sundaresan1@gmail.com' username: 'shyam')
subject: 'Email Test')
body: 'This is a Test Email sent';
send.
デバッグで、ハングする場所がSendMail >> sendにあることがわかりました
send
| rc |
^self isEnabled
ifFalse: [self saveToFile]
ifTrue: [ self halt.
rc := self openTcpConnection.
rc
ifTrue:
[ rc ifTrue: [rc := self readSmtpResult] "==> HANGS HERE ==>"
rc ifTrue: [rc := self sendHelo].
rc ifTrue: [rc := self readSmtpResult].
rc ifTrue: [rc := self sendMailFrom].
rc ifTrue: [rc := self readSmtpResult].
具体的には、readSmtpResultの次のループwhileFalseから (永久に) 終了しません。
readSmtpResult
| result firstChar |
[self readWillNotBlockWithin: 5000]
whileFalse: [GsFile stderr log: 'Waiting for server to write...'].
Telnetを使用すると、そのポートはうまく接続します
shyam:opt shyam$ telnet mailhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 shyam.homenet.telecomitalia.it ESMTP Postfix
また、smtpHost、smtpPort、ownDomainName などがすべて正しいことも確認しました。/var/log/mail.logに何も書かれていないことにも気付きました
さらに、同じマシン上の PHARO 1.4 エンジン + Seaside 上の同じコードは正常に動作し、次のコマンド ラインを使用すると、メールは gmail を介して正しく中継されます。
echo 'It works' | mailx -s 'Test message' shyam1.sundaresan1@gmail.com
行き詰まりを克服するのに役立つ指標は、ありがたく歓迎されます。
ありがとう
シャム。