There is a bug in Alpine whereby out of the box it is unable to send email on an OpenBSD box, even locally. By default, sending a message in unconfigured Alpine will fork out to sendmail(8) which hangs for some unknown reason and the sendmail wrapper process needs to be killed. Receiving mail works fine.
Running /usr/sbin/sendmail -t < ~/dead.letter against the abandoned message works fine, so the interface between Alpine and the sendmail wrapper is broken. I ran a ktrace but couldn't find anything substantiative. Rather than debug this further, there is a much simpler patch to get Alpine working in the default install. The below change sets the value of smtp-server to localhost in the file which gets copied to /etc/pine.conf on installation. With this variable set, Alpine connects to the local smtpd over TCP rather than using the sendmail(8) utility, if the user has no smtp server defined. /etc/pine.conf is overridden by the user's ~/.pinerc so this should be a non-destructive change that will not impact anything but an unconfigured installation which falls back to using sendmail(8), which does not work. If it *did* work, then I believe --with-smtp-msa-flags=-t should be set in the Makefile as well since the hard-coded defaults pass bogus flags to sendmail(8). This didn't work either so it really doesn't matter, I believe the issue lies somewhere in the threading mechanism and how it forks out to sendmail. It's possible a prior security-related change broke something. This issue dates back to at least OpenBSD 6.8: https://marc.info/?l=openbsd-misc&m=161141614219034&w=2 Index: Makefile =================================================================== RCS file: /cvs/ports/mail/alpine/Makefile,v retrieving revision 1.63 diff -u -p -u -p -r1.63 Makefile --- Makefile 28 Jan 2025 20:09:20 -0000 1.63 +++ Makefile 29 Apr 2025 01:00:09 -0000 @@ -99,7 +99,8 @@ post-install: ${WRKSRC}/doc/mailcap.unx \ ${WRKSRC}/doc/mime.types \ ${PREFIX}/share/doc/alpine - ${WRKBUILD}/alpine/alpine -conf > \ + ${WRKBUILD}/alpine/alpine -conf | sed \ + 's/smtp-server=/smtp-server=localhost/' > \ ${PREFIX}/share/examples/alpine/pine.conf # c-client # the relevant os_*.h is copied to osdep.h in build; others not needed