[Zope] Getting email fields right

flynt flynt@gmx.ch
Thu, 29 Nov 2001 15:56:06 +0100


Hi Bruce

I am puzzled a bit. I tested before I sent you the message. And I tested
more after your reply that it did not work for you. Furthermore, looking
in the source code, the Mailhost product's *MailHost.send* method does
nothing else than using smtplib. So if Fredric Lundh's receipt is
working with smtplib, it should do so with Zope's Mailhost.

I tested with:
- Zope 2.3.3 and Zope 2.4.3 on Linux
- Zope 2.4.3 on Windows XP
- Email clients Netscape Messenger and MS Outlook
- different SMTP servers in the MailHost object: Intranet (Sendmail and
MS Exchange), mx0.gmx.net (qmail)
- different sender and recipients addresses (Intranet and GMX)
- by using test tab of the external method and by calling the external
method
from a DTML method.
For all cases it works.

I could reproduce your original problem (I got the from part in the
email, but for recipients I got only *Undisclosed recipients*), but I
cannot reproduce the problems with the wrong (missing ?) *from* and *to*
you are reporting now. I *do* get the *from* and *to* fields correctly
filled when using the external method that I copy-pasted into the email
that I have sent earlier.

Sorry, at the moment I have no idea about what might be the problem.
Maybe someone else has an idea ? And I do not understand why it should
work with smtplib but not with Zope's Mailhost object's *send* method.

--- Flynt


Bruce Eckel wrote:
> 
> Thanks ... except, it doesn't actually work. I installed it and
> tried it, and it sends email but the From and To fields are not
> filled out properly.
> 
> Using smtplib does work, however.
> 
> *********** REPLY SEPARATOR  ***********
> 
> On 11/28/01 at 1:13 PM flynt wrote:
> 
> >Bruce Eckel wrote:
> >>
> >> I'm using the MailHost to send email from within an external
> >> method. I've tried a number of different combinations, including
> >> something as elaborate as this:
> >>
> >> self.MailHost.send("This is a test", # Body
> >>     "To: Bruce Eckel <Bruce@EckelObjects.com>",
> >>     "From: Bruce Eckel <Bruce@EckelObjects.com>",
> >>      "Test Email") # Subject
> >>
> >> However, I can't seem to get the "to" and "from" fields to show
> up
> >> right in the resulting email. All I end up with is a 'to' field
> of
> >> Bruce@EckelObjects.com
> >> and an empty 'from' field.
> >>
> >> I suspect others have done this before and solved the problem.
> Or
> >> will want to :-)
> >
> >Hi Bruce
> >
> >With the help of Lundh's *Python Standard Library* I got to the
> >following. This is in the external method:
> >
> >import string
> >def testmail(self):
> >        message = "This is a test"
> >        mto = "Bruce@EckelObjects.com"
> >        mfrom = "Bruce@EckelObjects.com"
> >        subject = "Test Email"
> >        encode = None
> >
> >        body = string.join((
> >                "From: %s" % mfrom,
> >                "To: %s" % mto,
> >                "Subject: %s" % subject,
> >                "",
> >                message), "\r\n")
> >
> >        self.MailHost.send(body, [mto], mfrom, subject, encode)
> >
> >
> >Greetings
> >
> >--- Flynt