2

以前に同様の質問を試みましたが、先に進むことができませんでした。だから私は新しいテストをしました、そしてここに新しい質問があります:

同じマシンに PHARO 1.4 と GEMSTONE 3.0.1.2 を新しくインストールしました。(Linux CENTOS)。最新バージョンの Glass ワークスペース ( 1.0 beta 8.7.4 ) を備えた最新バージョンの Gemtools ( 1.0 beta 87 ) を使用して、Pharo に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/hostsファイルに追加しました127.0.0.1 localhost mailhost)。

Pharo では、メッセージは正しく送受信されますが、Gemstone では 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 OS Xでも同様の結果を試してみましたが、代わりに上記の行でループに陥りました。

と WireSharkを使用するtcpdump -X -i lo tcp port 25と、GEMSTONE では、パケットが PHARO と正しく交換されているにもかかわらず、アクティビティが見られないことに気付きました。

明らかに、私は 2 つの異なるシステムで間違ったことをしているのです。

何か案が ?

ありがとう

シャム。

4

1 に答える 1

1

resultですnilので#readString:返品致しnilます。

ピアがデータを送信していないようです。ポート 25 でアクティビティが発生していないことは既に確認しましたが、SMTP パラメータが正しいことは確かですか?

Seaside-Email には、SMTP サーバーの構成に使用できるコードが含まれています。Seaside アプリケーション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.

とは、GemStone バージョンの で使用されるため、説明されている方法で構成する必要があることに注意して#smtpServerください。私は故意に GemStone のデフォルトを使用しないことにしました。smtpPort GRPlatform>>#seasideDeliverEmailMessage:

また、この方法で SMTP パラメータを設定すると、クロスプラットフォームで動作するようになります。そうでない場合は、直接私に連絡してください。

于 2013-03-05T12:42:35.720 に答える