Blog > Post

Post-what? - Using PostPet in 2022

05 Jan 2022


残念ながら、私は機械翻訳の助けなしに日本語を書くことはできません。 そのため、このガイドは英語でのみご利用いただけます。 機械翻訳版を読むことはできますが、正確ではない場合があります。 謝罪いたします。

Contents


Introduction

I suppose I should provide some backstory as to why I'm writing this guide.

A little over a year ago, I learned about the Pocket PostPet through a Twitter post by Froyo Tam, showing some homebrew software running on the device. I was immediately in love with it; it was unlike anything I had seen before! A small, handheld computer, running Windows CE, with- most importantly- pink accents all over the place. I was intrigued, so I proceeded to search for more information about the device... however, to my surprise, English documentation regarding the device was extremely scarce. In all, there was:

This was a bit disappointing, yet understandable seeing as the device was only ever sold in Japan. In all, I was able to deduce that the device was a combination dedicated email terminal and pet simulator. Cute! But... I still wanted to know more. So, what was the next best thing I could do to learn more about the device, other than meticulously putting Japanese websites through machine translation?

Order one.

To my surprise, Yahoo Auctions had a listing for a Pocket PostPet, complete in box, and in very good working condition (except the battery, but that's to be expected nowadays...). Better yet, it was at a reasonable price, even after factoring in shipping costs from Japan to the US. So, without hesitation, I got one ordered as a Christmas gift to myself. In the meantime, I didn't do much research on the device; besides, I'd learn more about it when it arrives, right?

1 year later...

Okay, so it didn't exactly arrive on time... And given the pandemic, I had already expected some sort of delay. But a whole year...? I had almost completely forgotten about the Pocket PostPet by this point, when suddenly I got a notification that the shipping proxy had it in escrow, and were waiting for me to pick a shipping option. Finally!

So, Christmas 2021 rolls around, and I finally have a Pocket PostPet for myself. Upon doing another search with rekindled interest in the device, I saw that nothing had changed in terms of English documentation for the device. So, after exploring what little I could of it, I set it upon myself to provide extensive documentation of the device. Except...

There's more than just the Pocket PostPet

I forgot how I came to learn about this- perhaps it was through doing a Japanese Google search for "pocket postpet" and translating the Wikipedia page for "PostPet"- but the Pocket PostPet wasn't just some standalone product. PostPet was actually a series of email clients for Windows and MacOS before getting its own, standalone email device. Now, one interesting thing to note about the Pocket PostPet is that the only connection it has to the outside world is via a PDC phone connector. This particular connection is found primarily on cell phones sold by NTT DoCoMo back in the early 2000s, as a way for mobile devices to connect to the internet via a cell phone. Think of it as a primitive form of "Mobile Hotspot", just without the wireless-ness. Now, here's where the problem lies: I don't have a Japanese cell phone from the early 2000s. And if I did, there's another problem: I don't live in Japan. And even if I did, there's one last problem: NTT axed the network these phones used for this functionality back in 2010. So, by all means, the Pocket PostPet can no longer be used for what it was intended for: sending and receiving emails.

So, why doesn't PostPet work as-is?

After learning about the Windows and MacOS versions of PostPet, I had a bit of hope. No weird connector means it should pretty much "just work" with any mail server over a standard internet connection, right?

Well, mostly. Remember, PostPet (at least the versions I'll be covering here) is software from the late 90s, and as such, it was built with mail servers from that time period in mind as well. And you know what that means: no secure connection requirements! Since every (good) email provider nowadays requires a secure connection to its servers in order to send and receive mail, I needed to work around this requirement. Here's what I came up with.


Requirements

To follow this guide, you'll need:

  • PostPet V1 or V2 (... which can be found in this archive I made of all the trial versions I could pull from the Wayback Machine. English readers may specifically want to follow along with the "pp214enutrial.exe" executable.)
  • Windows 95 or later, or Wine on Linux (If you're going to use the Japanese versions of PostPet, then those require a Japanese version of Windows. I haven't been able to get Japanese PostPet working on Wine, even with LC_ALL=ja_JP.utf8.)
  • A Linux server (preferably Debian or Ubuntu) on your local network
    • I cannot stress this enough: the server needs to be on your local network, otherwise you risk sending your emails unencrypted over the internet. You could probably use a VPN to a remote server, but I'm not going to cover that setup.
  • An account with an email provider that supports SMTP and POP3 connections (for example, Gmail)

Step 1: Getting Your Account Ready

Initially I was going to start with instructions on setting up the proxy services, but making sure your existing mail account will work in the first place is a bit more important. If you're using Gmail, I can already confirm that it will work, and I'll be using it as an example in this guide. But if you're using a different provider, you'll need to make sure it allows the following:

  • Checking for mail via POP3
  • Sending mail via SMTP
  • Login from "insecure" clients (in other words, the ability to use app-specific passwords while 2FA is enabled)

If you're not using Gmail, you'll unfortunately have to look for instructions on enabling these things on your own. If you are using Gmail, then follow along.

Generating an app password for Gmail

If you don't have two-factor authentication enabled on your Google account, all you need to do is visit this page to enable logging in from insecure clients. This isn't really recommended though; I strongly suggest looking up how to enable 2FA on your account first. If you already have 2FA enabled though, you'll need to head to your Google account's security settings and click the "App Passwords" button.

Google's app password creation page

On this page, select "Mail" on the "Select app" dropdown, select "Other" on the "Select device" dropdown, and enter something like "PostPet" for the name. Click "Generate". You'll be presented with a password that can be used for PostPet to log into your account; copy this password somewhere else first, as this is the only time you'll be able to see it!

Enabling POP3 for Gmail

Once this is done, head over to Gmail. Click the gear icon in the top right corner, then "See all settings". Go to the "Forwarding and POP/IMAP" tab. Here we'll be able to configure how Gmail will behave when accessed via PostPet.

Gear icon in Gmail, with "See all settings" button below Gmail's POP settings

If your account has a lot of mail in it, it might be a good idea to select "Enable POP for mail that arrives from now on", as I don't know what kinds of limits PostPet has when it comes to large amounts of mail. But if you keep your account relatively clean, you can select "Enable POP for all mail". There's also an option to choose what will happen with your mail when it is accessed via POP. I strongly recommend "keep Gmail's copy in the inbox".

And with that out of the way, your Gmail account is (almost) ready to be used with PostPet!

Step 2: Setting up the Proxies

If PostPet can only connect to mail servers with no security, then we'll need to use something that can take PostPet's connection as an input and pass it along to a email provider with the proper security. That's where a proxy comes in. In our case, we'll use two different proxies: one to handle SMTP connections, and one to handle POP3.

SMTP Proxy

Let's start with the SMTP proxy. We'll be using emailrelay for this. Download its package from this page, using the .deb if you're on Debian/Ubuntu, the .rpm on Fedora, or compile it from source via the .tar.gz. In my case, I used the .deb, and installed it on my server via sudo dpkg -i emailrelay_2.2_amd64.deb. If you're on Fedora (or worse, need to compile the proxy from source), you're on your own!

After emailrelay is installed, we'll need to configure a few things. First, emailrelay will already be running; we'll need to stop it, so use sudo service emailrelay stop. Next, we'll edit emailrelay's config file with sudo nano /etc/emailrelay.conf. Go to the bottom of the file and add these lines, replacing the as-proxy and client-auth values accordingly:

as-proxy smtp.gmail.com:587
client-tls
client-auth /home/kokoro/secret

If you aren't using Gmail, replace smtp.gmail.com:587 with the server and port your provider uses for SMTP. Then there's also the client-auth setting, which tells emailrelay where to find your login information. For this example, I placed it in my home folder with the filename secret. The contents of that file should look something like this:

client plain example@gmail.com YourPassword

Of course, replacing "example@gmail.com" with your own email address, and "YourPassword" with the app password you generated earlier (or your actual password if you don't have 2FA). All that's left is to start up emailrelay via sudo service emailrelay start, and the SMTP proxy is ready to go!

POP Proxy

One proxy down, one to go. For POP, we'll be using xinetd. This is already included in the repositories for many Linux distributions, so if you're on Debian/Ubuntu, sudo apt install --no-install-recommends xinetd openssl is all you need. On other distributions, the package names could be a bit different. Now, we'll need to configure xinetd to handle our POP connection; to do this, create a file at /etc/xinetd.d/pop2pops with the following contents:

#
# Description:
# A service tunneling POP3 requests to mail.example.com via TLS, making
# it a POP3S connection. Purpose is to allow old email clients not supporting
# modern TLS to mail servers requiring it.
#
service pop2pops
{
  type            = UNLISTED
  flags           = NORETRY
  socket_type     = stream
  protocol        = tcp
  wait            = no
  user            = nobody
  instances       = 10
  server          = /usr/bin/openssl
  server_args     = s_client -connect pop.gmail.com:995 -quiet -verify_quiet
  port            = 110
#  log_type        = FILE /var/log/pop2pops.log
#  log_on_success  = PID HOST USERID DURATION
#  log_on_failure  = HOST USERID
}

I should probably mention by now that this config is originally from this guide here, so kudos to the author. Again, if you aren't using Gmail, replace pop.gmail.com:995 with the server and port your provider uses for POP. Restart xinetd with sudo service xinetd restart, and we're all done setting up the proxies! Now, on to PostPet.

Step 3: Setting up PostPet

I'll go over setting up 3 different versions of PostPet: The Japanese-only V1, and both the Japanese and English versions of V2. I'll primarily be covering the English version of V2 here. It's very similar to the Japanese version, but with one slight difference. I've listed where this difference is in the English version's setup guide, so follow it even if you're using the Japanese version.

V2 setup

Run the setup executable for the version of PostPet you wish to use. After the installation finishes and PostPet is launched, you'll be greeted with this setup prompt.

PostPet english setup

Simply put the address of your server into the SMTP and POP server fields, the part of your email address before the "@" into the POP account field, and the generated app password (or your actual password if not using 2FA on Gmail) into the password field. (This is where the Japanese version differs a bit, check this part of the guide before continuing.) The email address and real name fields are self-explanatory. I also recommend setting "Keep Mail on Server" to "Yes". After this is done, you'll get to select your pet. This part is pretty self-explanatory too. Once that's done, you'll arrive at the main interface!

PostPet english interface

To make sure the POP proxy is working, click the "Check Mail" button. If it worked, your emails should show up in the Inbox! If it didn't work, make sure the POP proxy is set up properly; you can also troubleshoot the server using the guide I linked earlier. If you get a message like "You have no mail", then you most likely have POP set up such that only new messages will get downloaded. Wait for some mail (or send mail to yourself) before trying again.

Sidenote: I ran into a bizarre issue with Gmail where PostPet reported that I had no mail, when my POP settings were set to get all mail in my inbox. What I had to do was log into Gmail on my browser, which gave me a weird "your account is unavailable" error; clicking the "Try Again" button there fixed it. So if you get a "No mail" report from PostPet, try logging into Gmail from a browser and try again.

The last thing to check is the SMTP proxy. Click the "Write Mail" button to bring up the composer, specify an email address (could be yourself or a friend) and subject, and write something in the message box. When you're ready, click the "Call Postman" button to send your message. If all goes well, you should be able to check your sent messages via a browser and see the message you've sent via PostPet. If it didn't work, make sure you set up the SMTP server correctly.

And that's pretty much all there is to it! If both sending and receiving mail works, then PostPet is fully functional, aside from the 10-day trial limitation.

Distinction between the "Call Pet" and "Call Postman" buttons

When in the composer, you may have noticed two different "Send" buttons: One for a pet, and one for the Postman. What's the deal with that?

Well, if you know someone else that uses PostPet, you can send your pet to visit them. It essentially sends a regular email to the other person, but with a .ppd file containing information about your pet. Once the recipient checks their mail, your pet will show up on their screen, play with their pet, and then leave. This then sends an email from the recipient back to you, letting PostPet know that your pet is back. Otherwise, your pet will still come back after some amount of time has passed without a reply.

Now, sending this weird ppd file to people that don't use PostPet can be a bit annoying; for one, your pet won't come back for a while, and the recipient didn't want that pet file in the first place! That's where the Postman comes in; it allows you to send plain old mail without your pet as an attachment.

The pet simulator side of things

I'm not really going to go into how the pet simulator works; that's for you to explore! But here are a few tips:

  • Clicking your pet will make them angry, only do it if they do something you don't want them to do
  • Moving your cursor over your pet will pet them
  • As your pet grows older, the types of foods they like will change

Japanese V2 setup

The Japanese version of PostPet is very similar to the English one, with a slight difference in the setup screen.

PostPet Japanese setup

Notice the lack of "POP username" field; instead, it goes into the same field as the server, like "username@your.server.address". Everything else from the English version is the same, so follow the instructions from earlier!

V1 setup

The setup for V1 is very similar to the setup found in the Japanese version of V2, so you'll need to use the same POP server format.

PostPet V1 Japanese setup

Unfortunately, V1 seems to suffer from an issue where it can't receive any mail. This issue seems to be common with other old email clients I've tried, notably PinkRabbit, where the client will connect to the proxy just fine, but report back with a "no mail" message. Sending mail still works, though.

Closing Notes

Unfortunately, I haven't been able to get V3 of PostPet (which contains full 3D graphics) to work. After setting it up, the software simply errors and exits. I tried running it on a Japanese Windows XP install too, which is what it was originally designed to run on, but it still refuses to run. Perhaps it's a limitation of the trial, because the full version seems to work to this day on Windows 10. If you're curious, here's a video of that.

Speaking of trial limitations, I haven't found a way to disable PostPet's trial timer. It's 10 days long, which is enough to play around the software for a bit, but if you're serious about using PostPet, that timer will eventually become a problem. I'm sure I could spend a day with WinDbg or Ghidra and trick the trial versions of PostPet into getting registered, but I have more important things to do.

You're probably wondering: "Why did you go through the trouble of figuring out how to get some random old email software to work, and then write a whole post about it?" The answer is simple; I simply find PostPet interesting, and wanted to preserve it. It might not be important to you, but it's still a part of internet history, even if it's extremely unimportant compared to other old pieces of software like, for example, Netscape. Getting PostPet to work again and providing a guide on how to do so allows people who may have never heard of, and thus never used the software, to see what it was like with full functionality. It also allows those who have fond memories of talking with their friends via PostPet to experience it once again. That's the whole point of software preservation: ensuring software can still be used in future generations, without making any sacrifices along the way, so users both new and old can enjoy it.

And with that, PostPet is preserved and usable in the modern age... mostly. Unfortunately, all MacOS versions of the PostPet trial have been lost to time, as they were never archived and put into the Wayback Machine. Additionally, there are only 2 archives of full versions of PostPet distributed via CD (at least that I could find), and even then there are no scans of the box, manual, etc. So, if you have archives of any MacOS trial versions, or have created a complete copy of a full PostPet disc, please get in touch- preferrably via PostPet ;)

If you're as interested as I am in PostPet, you'll be happy to know that I'm working on creating some more in-depth documentation, specifically for the Pocket PostPet. As I'm starting my next semester soon, this could take a while for me to get to, so please be patient in the meantime!

Bonus: Other Mail Software

If you followed the guide to completion, then the proxies you have set up also work for other old email software! Here are some examples:

  • PinkRabbit is a cute email client that uses the TML format for messages. Like PostPet V1, receiving mail doesn't work, but sending mail does.
  • Classilla's mail client can also send mail using the SMTP proxy, but like PostPet V1, it can't receive mail. (It does have TLS/SSL support, which means it should work with Gmail without even needing a proxy, but it still returns no mail.)
  • Same story with Microsoft Entourage 2001; sending works, receiving doesn't. I'm starting to notice a trend...
  • The guide I used to set up the POP proxy mentions the Mail app for OS X 10.4, so you could use that (and some older versions, too). Except I wasn't able to get POP to work with it. Again.

The fact that I got PostPet to work was enough for me. But now I'm curious as to why it worked with the POP proxy, while nothing else did. I'll have to do some more digging...

Credits/Sources/More info

The following pages were instrumental in getting things to work, shedding some light on PostPet, etc.


Share: 

(Not seeing your preferred service here? Contact me.)