The following schematic is intended to offer the following features:
- Extremely low drive current required from the I/O pin because the BJT is operated in active mode instead of saturated mode. Therefore the I/O pin voltage (sinking or sourcing in this circuit) should be very close to the MCU rails and the control line will work even with rather feeble drivers.
- Predictable gate-to-source voltage near the preferred value of \$-10\:\text{V}\$ for optimal operation.
- Fully resistive paths from gate to both power rails.
- Diode path for dissipating energy from relay's magnetic field collapse.
- Optional capacitor to counter the BJT base-to-collector capacitance from exceeding \$-10\:\text{V}\$ gate-to-source voltage when switching off. (PFET has its own capacitance that is probably more than sufficent, though.)
- Optional zener to protect PFET gate.
simulate this circuit – Schematic created using CircuitLab
Most relays are specified to operate at 70% of their rated voltage, so I'm not too worried about wrapping the circuit with a large capacitor. I'd probably avoid it unless experience proved otherwise.
Edit
Feel free to use most any diode for the above circuit. Any of the 1n400x will work fine, as well as the 1N4148. A better (but more expensive) circuit might use a zener oriented in the opposite direction as the diode as a way of increasing the coil voltage when its magnetic field is collapsing and thereby shortening the time required.
Also, since the above circuit is operated in active mode you will need to modify \$R_4\$ if you change the MCU rail voltage. In the above circuit, you should want about \$2.6\:\text{mA}\$ in \$R_4\$. So, if you used a \$5\:\text{V}\$ rail, you'd want to change \$R_4\$ to about \$1.5\:\text{k}\Omega\$. (I calculate \$R_4=\frac{V_\text{CC}−700\:\text{mV}}{2.6\:\text{mA}}\approx 1.65\:\text{k}\Omega\$.) That's the only change needed, though it is also possible to make adjustments to \$R_1\$ and \$R_4\$ together, if you prefer.