Utiliser Java pour réaliser les mots œstraux quotidiens à l'objet

Introduction

J'ai récemment vu un article sur la confession utilisant le code js, et j'ai été profondément ému.
Ensuite, j'ai trouvé que je pouvais aussi utiliser du code java pour l'implémenter, puis j'ai commencé à écrire le code. J'ai trouvé que c'était assez intéressant, donc je ne veux pas en parler.
Idée d'implémentation:
utilisez HttpClient pour obtenir à distance le contenu du site Web du générateur de pet arc-en-ciel: https: // chp.shadiao.app/

java Mail réalise l'envoi de mail

SpringBoot intègre Scheduled pour envoyer des e-mails régulièrement

Deuxièmement, construisez le projet

L'environnement du projet est basé sur le framework SpringBoot, ajoutant un projet Maven pour l'envoi de courrier, l'appel à distance RPC httpclient et Scheduled. Les dépendances sont les suivantes:

org.springframework.boot
spring-boot-starter-parent
2.3.2.RELEASE

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
    </dependency>
    <!-- httpclient 依赖 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.12</version>
    </dependency>
</dependencies>

<!--打包插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

Troisièmement, écrire la configuration

Avant d'écrire la configuration, vous devez vous connecter à votre messagerie dans le navigateur et définir le service POP3 / SMTP dans la sécurité du compte pour Insérez la description de l'image ici
démarrer le service POP3 / SMTP. Vous devez entrer le code de vérification pour démarrer le service POP3 / SMTP. Insérez la description de l'image ici
Copiez le code d'autorisation et Insérez la description de l'image ici
cochez SMTP pour envoyer la lettre et enregistrez-la sur le serveur, cochez ceci L'élément est principalement de voir quelles informations vous avez envoyées, alors décochez cet élément. Une fois l'e-mail envoyé avec succès, je ne peux pas voir les informations que j'ai envoyées dans ma boîte aux lettres. Insérez la description de l'image ici
Écrivez et configurez le code d'autorisation spring:
mail:
username: [email protected] # My email address
password: xxxxxxx # SMTP | POP3 | IMAP
Hôte du code d'autorisation du protocole : smtp.qq.com # Adresse du serveur. Reportez-vous aux informations fournies par l'opérateur du service de messagerie.
properties:
mail:
smtp:
auth: true # Activer le
port de vérification du protocole smtp : 587

À qui

elle:
mail: [email protected]

Quatrièmement, écrivez la classe de démarrage SpringBoot

@EnableScheduling
@SpringBootApplication
classe publique BiaoBaiApp { public static void main (String [] args) { SpringApplication.run (BiaoBaiApp.class, args); } 5. Générer automatiquement le contenu d'envoi



@Component
classe publique SendMessage { @Autowired private JavaMailSender mailSender; @Value (" spring. Mail. Username") private S tringfrom; @ V alue ("{spring.mail.username}") Chaîne privée de; @Évaluer("


s p r i n g . m a i l . u s e r n a m e " ) p r i v a t e S t r i n g f r o m ;@ V a l u e ( " {she.mail}")
chaîne privée [] sheMail;
public void sendMessage (String subject, String message) {

    try {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
        helper.setFrom(from);//发送者邮件邮箱
        helper.setTo(sheMail);//收邮件者邮箱
        helper.setSubject(subject);//发件主题
        helper.setText(message);//发件内容
        mailSender.send(helper.getMimeMessage());//发送邮件
    } catch (MessagingException e) {
        e.printStackTrace();
    }

}
/**远程获取要发送的信息*/
public static String getOneS(){
    try {
        //创建客户端对象
        HttpClient client = HttpClients.createDefault();
        /*创建地址 https://du.shadiao.app/api.php*/
        HttpGet get = new HttpGet("https://chp.shadiao.app/api.php");
        //发起请求,接收响应对象
        HttpResponse response = client.execute(get);
        //获取响应体,响应数据是一种基于HTTP协议标准字符串的对象
        //响应体和响应头,都是封装HTTP协议数据。直接使用可能出现乱码或解析错误
        HttpEntity entity = response.getEntity();
        //通过HTTP实体工具类,转换响应体数据
        String responseString = EntityUtils.toString(entity, "utf-8");

        return responseString;

    } catch (IOException e) {
        throw  new RuntimeException("网站获取句子失败");
    }
}

}

Six, écrivez des tâches chronométrées

@Component
classe publique MyScheduled { @Autowired Private SendMessage sendMessage;

/*定时执行任务方法 每天5点20执行该任务*/
@Scheduled(cron ="0 20 17 * * *")
public void dsrw(){
    String message = sendMessage.getOneS();
    sendMessage.sendMessage("来自清茶淡粥的消息!❤",message);
}

}
Sept, empaquetez et exécutez

Si vous avez des conditions, vous pouvez placer le package jar sur le serveur d'expédition. S'il n'y a pas de conditions, vous pouvez ajouter une tâche planifiée sur le système win10 local et exécuter le package jar régulièrement chaque jour.
Le package jar doit être publié sur le port du serveur: 587, le pare-feu libère le port 587.
En plus de la version, il existe également des ports http et https à libérer. Insérez la description de l'image ici
Ensuite, démarrez le package jar
nohup java -jar package jar> test.log &
win10 en arrière-plan Linux. Créez une tâche dans le planificateur de tâches, créez un Insérez la description de l'image ici
nouveau déclencheur, Insérez la description de l'image ici
créez une nouvelle opération, entrez la commande jar exécutée dans le programme ou le script, cliquez sur OK, Insérez la description de l'image ici
puis vous pouvez voir la tâche créée . Insérez la description de l'image ici
8. Résumé

Le code a été grandement amélioré et il présente de nombreuses lacunes.
Pour des raisons de temps, il existe encore de nombreux domaines qui peuvent être optimisés. Par exemple, envoyer des e-mails avec du texte pur n'est pas beau. Vous pouvez envoyer des e-mails en mode html pour rendre le contenu des e-mails envoyés plus beau.
public void sendHtmlMessage (String subject, String message) { try { MimeMessage mimeMessage = mailSender.createMimeMessage (); MimeMessageHelper helper = new MimeMessageHelper (mimeMessage); helper.setFrom (from); helper.setubTo (sheMailSject); helper.setubTo ( sheMailSject) ); helper.setText (message, true); // true Utilisez html pour envoyer mailSender.send (helper.getMimeMessage ()); } catch (MessagingException e) { e.printStackTrace (); } Il y a de nombreuses lacunes dans l'éditeur Office, tout le monde est invité à laisser un message dans la zone de commentaire pour discuter











Je suppose que tu aimes

Origine blog.csdn.net/dcj19980805/article/details/114880657
conseillé
Classement