Winlink-Mac: Internet Email over Radio on a Mac
WARNING: Winlink running under Wine may not support the use of forms and templates, is somewhat complex, and is probably not a good option for Emergency Communications tasks.
If any of you are Mac users, Ki7QFV put together a how-to for making WinlinkExpress (via Wine) work on a Mac over RF. It's been tested on a Baofeng HT with either a TNC-x or a Signalink. It's slow (1200 baud) but it works! The technique should work over bluetooth also. It's also entirely free (except for the recommend registration for WinlinkExpress). No Windows OS required. If you're interested in a Mac running a Pactor modem over HF, look here: Winlink RMS Express with Mac and Pactor
To do this you'll be installing Wine/Homebrew and WinlinkExpress. You'll see lots of errors, just continue through the process. It will also take quite a while, so give yourself at least an hour to do the install.
In this example, I used a TNC-X from Coast Communications, a USB cable, over a 1200 baud serial connection. But the same basic concept should also work for bluetooth. Note I had to force the serial port speed to 1200 baud because that's how the TNC-X came configured... although that can be changed.
Ray Rischpater, KF6GPE put the original how-to together for a TH-D74 and bluetooth, and it's been revised to support Winlink for a TNC-X - Ignore the packet/bluetooth comments, this still applies to winlink over USB.
SUMMARY OF MY STEPS: (and do the install over a FAST internet connection - lots to download).
0) Make sure the Mac driver is already installed for your serial device! For my TNC-X, I went here: 
1) Install Homebrew, note step b is all on ONE line.
a) open terminal b) run /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2) in the same terminal window, type:
a) brew install wine && brew install winetricks b) WINEARCH=win32; export WINEARCH c) winetricks dotnet35sp1
3) open a new terminal window (so you have 2 windows to look at). These steps will link your Mac driver to Winlink Express.
a) cd /dev b) ls c) **look at the list - which one looks like it has the word serial in it?** substitute that in line e below [if you are using a signalink instead of a tnc-x, skip step 3c, 3d and 3e] d) cd ~/.wine/dosdevices e) ln -s /dev/cu.usbserial-#### com2
4) in your other terminal window
a) edit the ~/.wine/system.reg file and make sure it has the following lines in it. They may already be there.
[Hardware\\Devicemap\\Serialcomm] 1231984861 #time=1c976b51d546c80 "Serial1"="COM2"
5) download RMSExpress and unzip the windows installer - so you have an MSI to work with. Remove spaces from the name!
6) in either of your terminal windows, change to the msi directory location and type the following
a) wine msiexec /i RMSExpressSetup.msi b) wine ~/.wine/drive_c/RMS\ Express/RMS\ Express.exe (or whatever location on the virtual C drive that you used)
7) Pick telnet winlink, open session, and then click start. Make sure your basic winlink configuration is correct.
8) then pick Packet Winlink, Normal, Com2 for the serial port, and 1200 for the baud rate. [if you are using a signalink instead of a tinc-x, select TCP intead of serial]
9) to get a list of local winlink packet channels, you may need to download them. Make sure you've configured your grid square. There's a bug - choose *update table via radio* - and then use telnet to fetch the list over the internet.
10) Switch back to packet winlink, choose your channel, and set your radio frequency to match!
11) Send yourself a winlink message, and check it out on the winlink webmail page, to see if it's working.
Additional Steps for Signalink users: modified from W6CDD's guide here: 
Make sure your Mac control panel/sound settings are on internal speakers. Do NOT select USB Codec. You will do that elsewhere.
a) Go to http://uz7.ho.ua/packetradio.htm and download the file soundmodemXX.zip.
b) Unzip the file and copy the soundmodem.exe to your documents folder
c) launch terminal and run soundmodem from the saved location
d) On the SoundModem screen, click Settings/Devices.
e) Output and Input devices: SignaLink USB: Select USB Audio CODEC for both Output and Input devices.
f) Check – TX rotation
g) Check – Single channel output
h) Check – Enabled for KISS Server Port. Do not check AGWPE Server Port.
i) PTT Port:
For the SignaLink USB this should be NONE - Make sure neither box is checked.
j) Click OK
k) Click – Settings/Modems
l) Check – Default settings
m) Check – KISS Optimization
n) Check – non-AX25 filter
o) Under Modem type ch: A
p) Set Mode to AFSK AX.25 1200bd. Make sure the number to the right reads 1700
q) Click OK, then quit soundmodem and restart it from the terminal window (wine soundmodem)
r) launch Winlink Express from another terminal window (select new terminal window from the menu)
wine ~/.wine/drive_c/RMS\ Express/RMS\ Express.exe
s) Set to Packet WL2K
t) Click – Open Session:
u) Click – Setup
v) Set Packet TNC Type: to KISS
w) Set Packet TNC Model: to ACKMODE
x) Set Serial Port: to TCP
y) TCP Host / Port will be set to 127.0.0.1 / 8100
z) Under TNC Parameters, select 1200 Baud.
zz) Check – Enable IPoll (Bottom of screen)