Smalltalk 文本流

Smalltalk 文本流,smalltalk,pharo,Smalltalk,Pharo,我正在尝试对文本进行流式处理,并获取可以分配给发件人和收件人的值,以便使用SMTPClient发送邮件 |message sender recipient Stream peek| message:= 'To: myemail@gmail.com, otheremail@yahoo.com From: me@hotmail.com , ab@yahoo.com Subject: mail test Simp

我正在尝试对文本进行流式处理,并获取可以分配给发件人和收件人的值,以便使用SMTPClient发送邮件

 |message sender recipient Stream peek|
  message:= 'To: myemail@gmail.com, otheremail@yahoo.com 
             From: me@hotmail.com , ab@yahoo.com 
             Subject: mail test

             Simple mail from me.'.

  Stream:= message readStream.
  peek:= Stream next.
  peek = $T ifTrue[Stream position 2.
                   peek:= Stream next.
                   peek = $: ifTrue["How can  get everything For To: and From:
                                      as Senders and recipients"]].
我的另一个问题是

  SMTPClient 
  deliverMailFrom: sender
   to: recipient   
   text: message 
   usingServer: 'mail.mydomain'. 
  " ifTrue[Transcript show:('mail sent successfully')]"

如何检查邮件是否成功发送?请将您的问题分开,以便我们正确回答。第一个问题的答案是:

| message sender recipient stream subject |
message:= 'To: myemail@gmail.com, otheremail@yahoo.com 
           From: me@hotmail.com , ab@yahoo.com 
           Subject: mail test

           Simple mail from me.'.

stream := message readStream.
[stream atEnd] whileFalse: [
    line := stream nextLine trimBoth.

    (line beginsWith: 'To:') ifTrue: [recipient := line allButFirst: 'To: ' size].
    (line beginsWith: 'From:') ifTrue: [sender := line allButFirst: 'From: ' size].
    (line beginsWith: 'Subject:') ifTrue: [subject := line allButFirst: 'Subject: ' size]].

我想你应该看一看Pharobye的范例书。您可以在官方网站上免费下载它:

如果SMTPClient没有抛出错误,那么它会成功地将邮件发送到您的邮件服务器。一般来说,如果没有收到电子邮件地址所有者的明确回复,即ACK,您就无法做得更好。