diff --git a/application/src/main/java/run/halo/app/notification/DefaultSubscriberEmailResolver.java b/application/src/main/java/run/halo/app/notification/DefaultSubscriberEmailResolver.java index bc86dcdc1..473e0e77f 100644 --- a/application/src/main/java/run/halo/app/notification/DefaultSubscriberEmailResolver.java +++ b/application/src/main/java/run/halo/app/notification/DefaultSubscriberEmailResolver.java @@ -30,6 +30,7 @@ public class DefaultSubscriberEmailResolver implements SubscriberEmailResolver { return Mono.fromSupplier(() -> getEmail(subscriber)); } return client.fetch(User.class, subscriber.getName()) + .filter(user -> user.getSpec().isEmailVerified()) .mapNotNull(user -> user.getSpec().getEmail()); } diff --git a/application/src/test/java/run/halo/app/notification/DefaultSubscriberEmailResolverTest.java b/application/src/test/java/run/halo/app/notification/DefaultSubscriberEmailResolverTest.java index 2c3f1989c..a222860f3 100644 --- a/application/src/test/java/run/halo/app/notification/DefaultSubscriberEmailResolverTest.java +++ b/application/src/test/java/run/halo/app/notification/DefaultSubscriberEmailResolverTest.java @@ -50,6 +50,15 @@ class DefaultSubscriberEmailResolverTest { user.getMetadata().setName("fake-user"); user.setSpec(new User.UserSpec()); user.getSpec().setEmail("test@halo.run"); + user.getSpec().setEmailVerified(false); + when(client.fetch(eq(User.class), eq("fake-user"))).thenReturn(Mono.just(user)); + + subscriber.setName("fake-user"); + subscriberEmailResolver.resolve(subscriber) + .as(StepVerifier::create) + .verifyComplete(); + + user.getSpec().setEmailVerified(true); when(client.fetch(eq(User.class), eq("fake-user"))).thenReturn(Mono.just(user)); subscriber.setName("fake-user");