Mike Meyer wrote: > Leo Breebaart <[EMAIL PROTECTED]> writes: > > > I can get the username info (at least on Unix) via the 'pwd' > > module, but that still leaves me with the domainname, or rather > > the mailname, and I have not been able to spot a way of finding > > that from within Python. (I could try opening /etc/mailname by > > hand, but how standard is that filename/location?) > > Not very. Certainly doesn't exist on FreeBSD, and doesn't appear > anywhere in the sources for my UMA. > > BTW, an alternative for the username is the USER environment > variable. I don't know whether or not it exists on Windows. > > > I've also tried opening a pipe to sendmail, and feeding the > > message to that instead. This too works great (and does give an > > appropriate default 'From'), but that also turns my problem into > > the problem of finding the location of the sendmail program, > > which doesn't seem like much of an improvement, portability-wise. > > Well, you could provide a list of places to look for it. But you're > right, this doesn't help much with portability. > > > Finally, if at all possible I'd also like to get this working on > > Windows, so I'd rather stick with the standard smtplib if I can. > > smtplib needs an SMTP server to connect to. For unix systems, this is > typically localhost. What do you use for Windows systems? Or are you > connecting to your machine to deliver the mail? > > The problem with getting this working on Windows is that, IIRC, the > information you need is configured in the UMA, and not in some > system-wide location, at least on some versions of Windows, and it > typically is unrelated to the name of the Windows box you're on. > > Given those constraints, the simple solution is probably to ask the > user for the information you need. > > Failing that, and assuming os.env['USER'] exists on windows, you could > try: > > 1) Looking up the IP address of the host in question. Not the > interface - you need the address the outside world sees. > See <URL: http://www.whatismyip.com/ > for example. > 2) Do a reverse DNS lookup on that ip address to get a host name. > If they've got a dynamic IP address, this will probably be > something ugly, if you get anything at all. > 3) Start doing MX lookups on that host name, stripping off one > domain level at a time from the left until you get an address > with an MX record, or you've got nothing left. This assumes > that an MX record will exist for the part of the domain name > which get mail - which may not be true. > > This entire procedure also assumes that the user reads mail using > their ISP-provided maildrop, which may not be true. >
This does work (at least on WinXP Pro, using python 2.3.4): >>> os.environ["USERNAME"] 'myusername' > <mike > -- > Mike Meyer <[EMAIL PROTECTED]> > http://www.mired.org/home/mwm/ > Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list