Source: Up2staff Blog

Up2staff Blog How to log specific sSMTP errors

The sSMTP mail server has, in my experience, proven to be a surprisingly performant tool. In addition, I use the WP Mail SMTP plugin, which covers most scenarios regarding the email logging needs. However, there was not enough information available in some exceptional cases (email provider down, IP address ban, non-WP emails etc.). The fact is the sSMTP on its own can log everything (including the email content) into the syslog. Such logging seemed excessive, though, so I created a wrapper script that filters only specific failures and saves them into files for further processing: #!/bin/sh set -e LOGFILE="/tmp/ssmtp-$(date +%Y%m%d-%H%M%S)" echo "$0 $@" > "$LOGFILE" echo "" >> "$LOGFILE" exec 2>${LOGFILE} tee -a "$LOGFILE" | /usr/sbin/ssmtp "$@" exec 2>&- if [[ ! $LOGFILE == /ssmtp:/* ]]; then rm -rf $LOGFILE fi To use the wrapper, you need to save it as a script and make it executable. Then point the email config to it. In my case, I had to change a line in the php.ini as below: sendmail_path = /usr/sbin/myssmtp.sh -t -C /ssmtp.conf And finally, processing the outputs can be done (for example) like this: if ls /tmp/ssmtp-* 1> /dev/null 2>&1; then tail -n +1 /tmp/ssmtp-*; rm -rf /tmp/ssmtp-*; .. [more info]

Read full article »
Est. Annual Revenue
$100K-5.0M
Est. Employees
1-25
CEO Avatar

CEO

Update CEO

CEO Approval Rating

- -/100