Smalltalk 在海边发送邮件+;“宝石”;一条消息:发生NotUnderstanding(错误2010),未定义的对象不理解&x27;isEmpty'&引用;

Smalltalk 在海边发送邮件+;“宝石”;一条消息:发生NotUnderstanding(错误2010),未定义的对象不理解&x27;isEmpty'&引用;,smalltalk,seaside,gemstone,Smalltalk,Seaside,Gemstone,早些时候,我曾尝试过一个类似的问题,但未能取得进展。所以我做了新的测试,这是一个新问题: 我在同一台机器上重新安装了PHARO 1.4和GEMSTONE 3.0.1.2。(Linux CENTOS)。使用最新版本的Gemtools(1.0 beta 87)和最新版本的glass workspace(1.0 beta 8.7.4),在Pharo中加载seaside3.0,在Gemstone中加载3.0.7.1) 我打开工作区并评估: (WAEmailMessage from: (WAEma

早些时候,我曾尝试过一个类似的问题,但未能取得进展。所以我做了新的测试,这是一个新问题:

我在同一台机器上重新安装了PHARO 1.4和GEMSTONE 3.0.1.2。(Linux CENTOS)。使用最新版本的Gemtools(1.0 beta 87)和最新版本的glass workspace(1.0 beta 8.7.4),在Pharo中加载seaside3.0,在Gemstone中加载3.0.7.1

我打开工作区并评估:

(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中,我得到了消息
发生MessageNotUnderstanding(错误2010),未定义的对象不理解方法中的#“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

我在MacOSX上也尝试了类似的结果,但在上面的几行中,它进入了一个循环

使用
tcpdump-X-ilo-tcp端口25
和WireShark,我注意到对于GEMSTONE,当数据包正确地交换为PHARO时,我没有看到任何活动

很明显,我在两个不同的系统上犯了严重的错误

有什么想法吗

谢谢


Shyam.

结果是
nil
,因为
#readString:
返回
nil

对等方似乎没有发送任何数据。由于您已经跟踪到端口25上没有活动,您确定SMTP参数正确吗

Seaside电子邮件包含可用于配置SMTP服务器的代码。 如果您有Seaside应用程序,您可以执行以下操作:

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
必须按照所述方式进行配置,因为它们在宝石版的
GRPlatform>#seadedeliverEmailMessage:
中使用。我故意选择不使用宝石默认值


此外,通过这种方式设置SMTP参数有助于跨平台工作;如果没有,请直接与我联系。

非常感谢您的回答。如上所述进行尝试,对于PHARO和GEMSTONE,上述设置均已考虑在内。Pharo可行,但宝石的问题仍然存在。毕竟,我看到在GEMSTONE中,最终执行的方法是:
SendMail>>connectTo:on:
所以,无论我使用GEMSTONE默认值还是seaside默认值,正如您上面所描述的,作为参数的内容都是相同的:即端口号是25,主机是“localhost”@托比亚斯,我如何“直接”与你联系?@ShyamSundaresan在IRC上找到我作为krono的身份:irc://irc.parcplace.net/smalltalkthanks,我是IRC的新手,但我下载了一个MAC客户端,“加入”了#smalltalk频道,并在那里向您发送了一条消息。