Smalltalk 在海边发送邮件+;“宝石”;一条消息:发生NotUnderstanding(错误2010),未定义的对象不理解&x27;isEmpty'&引用;
早些时候,我曾尝试过一个类似的问题,但未能取得进展。所以我做了新的测试,这是一个新问题: 我在同一台机器上重新安装了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) 我打开工作区并评估: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
(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频道,并在那里向您发送了一条消息。