J'ai utilisé spring boot pour développer un projet shell utilisé pour envoyer des emails, par exemple.
sendmail -from foo@bar.com -password foobar -subject "hello world" -to aaa@bbb.com
Si le from
y password
sont manquants, j'utilise un expéditeur et un mot de passe par défaut, par ex. noreply@bar.com
y 123456
.
Ainsi, si l'utilisateur passe le test from
ils doivent également passer l'argument password
et vice versa. En d'autres termes, soit les deux sont non nuls, soit les deux sont nuls.
Comment puis-je vérifier cela de manière élégante ?
Maintenant, mon chemin est
if ((from != null && password == null) || (from == null && password != null)) {
throw new RuntimeException("from and password either both exist or both not exist");
}
14 votes
Par ailleurs, notez que l'utilisation des espaces blancs rend le code beaucoup plus facile à lire. Le simple fait d'ajouter des espaces entre les opérateurs dans votre code actuel améliorerait considérablement la lisibilité.
8 votes
Veuillez définir le terme "élégance".
0 votes
Vous devez disposer d'un ensemble distinct d'arguments pour les informations d'authentification SMTP et pour l'adresse électronique de l'expéditeur de l'enveloppe. L'adresse
From
L'adresse électronique n'est pas toujours le nom d'authentification SMTP.0 votes
Par exemple, j'ai plusieurs expéditeurs dans mon domaine de messagerie (différentes adresses "De"). Lorsque mon serveur SMTP communique avec le serveur SMTP de mon FAI en amont pour transférer le courrier, il utilise le même compte pour tous les expéditeurs, quelle que soit l'adresse "De".
3 votes
Il n'est pas possible de l'optimiser davantage, il s'agit d'une ligne de code lisible et il n'y a rien à gagner à la sur-optimiser.
0 votes
Je pense que je vais devoir imprimer deux t-shirts : "quand I pour vérifier si deux valeurs booléennes sont "différentes", j'utilise l'opérateur [...] : Je vais me faire un paquet d'argent !
3 votes
Note annexe : si c'est un shell script, les mots de passe ne seront-ils pas enregistrés dans l'historique du shell ?
0 votes
Et j'ai pensé, j'ai des problèmes