Javaを使用して、オブジェクトへの毎日の発情期の単語を実現します

I.はじめに

最近、jsコードを使った告白についての記事を見て、感動しました。
次に、Javaコードを使用して実装できることを発見し、コードを書き始めました。非常に興味深いことがわかったので、それについては話したくありません。
実装のアイデア:
HttpClientを使用してリモートで取得します。レインボーオナラジェネレーターのウェブサイトのコンテンツ:https:// chp.shadiao.app/

javaMailはメールの送信を実現します

SpringBootはScheduledを統合して定期的にメールを送信します

次に、プロジェクトをビルドします

プロジェクト環境がメールを送信するためのMavenプロジェクトを追加し、SpringBootフレームワークに基づいており、RPCはリモートHTTPClientの呼び出し、およびスケジュールの依存関係は、以下のとおり。

org.springframework.boot
春ブート・スターター・親
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>

3、構成の書き込み

設定を作成する前に、ブラウザでメールにログインし、アカウントセキュリティでPOP3 / SMTPサービスを設定してPOP3 / SMTPサービスをここに画像の説明を挿入します
開始する必要があります。POP3/ SMTPサービスを開始するには確認コードを入力する必要があります。ここに画像の説明を挿入します
認証コードをコピーし、ここに画像の説明を挿入します
SMTPをチェックしてレターを送信し、サーバーに保存します。これをチェックします。この項目は主に送信した情報を確認するためのものなので、この項目のチェックを外します。電子メールメッセージが正常に送信された後、メールボックスに送信した情報が表示されません。ここに画像の説明を挿入します
認証コードを記述して構成します。春:
メール:
ユーザー名:[email protected]#電子メールアドレス
パスワード:xxxxxxx#SMTP | POP3 | IMAPプロトコル認証コード
ホスト:smtp.qq.com#サーバーアドレス。メールボックスサービスオペレーターから提供された情報を参照してください。
プロパティ:
mail:
smtp:
auth:true#smtpプロトコル検証
ポートを有効にする:587

誰に

彼女:
メール:[email protected]

第四に、SpringBootスタートアップクラスを書く

@EnableScheduling
@SpringBootApplication
public class BiaoBaiApp { public static void main(String [] args){ SpringApplication.run(BiaoBaiApp.class、args); } 5。送信コンテンツを自動的に生成します



@Component
public class SendMessage { @Autowired private JavaMailSender mailSender; @Value( " spring .mail .username ")private S tringfrom; @値( "{spring.mail.username}")プライベート文字列from; @値("


S P R I N G mは、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}")
private String [] 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("网站获取句子失败");
    }
}

}

6、時限タスクを書く

@Component
public class MyScheduled { @Autowired private SendMessage sendMessage;

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

}
7つ、パッケージ化して実行

条件がある場合は、出荷サーバーにjarパッケージを配置できます。条件がない場合は、ローカルのwin10システムにスケジュールされたタスクを追加して、毎日定期的にjarパッケージを実行できます。
jarパッケージはサーバーポート587でリリースする必要があります。ファイアウォールは587ポートをリリースします。
リリースに加えて、リリースするhttpポートとhttpsポートもあります。ここに画像の説明を挿入します
次にjarパッケージを起動します
。nohupjava-jar jar package> Linuxバックグラウンド
でのtest.log&win10 タスクスケジューラでタスクを作成し、ここに画像の説明を挿入します
新しいトリガーをここに画像の説明を挿入します
作成し、新しい操作を作成し、プログラムまたはスクリプトに実行されたjarコマンドを入力し、[OK]をクリックするここに画像の説明を挿入します
と、作成されたタスクが表示されます。 。ここに画像の説明を挿入します
8.まとめ

コードは大幅に改善されており、多くの欠点があります。
時間の関係で、最適化できる領域はまだたくさんあります。たとえば、純粋なテキストコンテンツを含むメールの送信は美しくありません。htmlモードでメールを送信すると、送信されたメールのコンテンツをより美しくすることができます。
public void sendHtmlMessage(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、true); // true htmlを使用してmailSender.send(helper.getMimeMessage()); } catch(MessagingException e){ e.printStackTrace(); }を送信するエディターには多くの欠点があります。オフィス、誰もが議論するためにコメントエリアにメッセージを残すことを歓迎します











おすすめ

転載: blog.csdn.net/dcj19980805/article/details/114880657