我已经在我的 MAC 上安装了 MACOSX Lion,最新版本的 Gemtools (1.0 beta 87 ) 和最新版本的 glass workspace (1.0 beta 8.7.4)和最新版本的 GEMSTONE: 3.1.0.1。 在这个我已经加载了海边使用:
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].
具体来说,它不会(永远)退出以下循环whileFalse in readSmtpResult:
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
任何可以帮助我克服僵局的指标都将受到欢迎。
谢谢
夏姆。