之前尝试过一个类似的问题,但我没能取得进展。所以我做了新的测试,这是一个新的问题:
我在同一台机器上安装了崭新的法老1.4和宝石3.0.1.2。(Linux CENTOS)使用最新版本的Gemtools (1.0 beta 87)和最新版本的玻璃工作区(1.0 beta 8.7.4),分别在Pharo和Gemstone中加载seaside 3.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/ host 文件127.0.0.1 localhost mailhost中添加了以下一行)。
在法老上,消息被正确地发送和接收,而在宝石中,我得到了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].原因是result返回一个nil。
我在MAC上也尝试了类似的结果,而在上面的代码行中,它变成了一个循环。
使用tcpdump -X -i lo tcp port 25和WireShark,,我注意到对于宝石,我没有看到任何活动,而包被正确地交换给were。
显然,我在两个不同的系统上做了一些非常错误的事情。
知道吗?
谢谢
夏安。
发布于 2013-03-05 12:42:35
result是nil,因为#readString:返回了nil。
似乎对等方不发送任何数据。由于您已经跟踪到端口25上没有活动,确定SMTP参数是正确的吗?
海滨-电子邮件包含可用于配置SMTP-Server的代码。如果您拥有your应用程序seasideApp,则可以执行以下操作:
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必须按照描述的方式配置,因为它们在GemStone版本的GRPlatform>>#seasideDeliverEmailMessage:中使用。我选择了故意不使用GemStone默认值。
另外,以这种方式设置SMTP参数可以跨平台工作;如果没有,请直接与我联系。
https://stackoverflow.com/questions/15210291
复制相似问题