AcelleMail collapses the many vendor-specific bounce shapes onto a small semantic enum. The file app/SendingServers/Webhooks/BounceType.php defines exactly two cases that drive the blacklist decision:
enum BounceType: string
{
case HARD = 'hard';
case SOFT = 'soft';
}The raw vendor string (Amazon SNS sends Permanent / Transient / Undetermined; Mailgun, SparkPost, SendGrid each have their own taxonomy) is preserved separately as BounceReceived::$bounceTypeRaw for audit. The model BounceLog then mirrors this with three constants — HARD, SOFT, UNKNOWN — keyed off the legacy column.