Usando Java para perceber as palavras diárias do estro para o objeto

I. Introdução

Recentemente, vi um artigo sobre confissão usando código js e fiquei profundamente comovido.
Então descobri que também poderia usar o código java para implementá-lo e comecei a escrever o código. Achei muito interessante, então não quero falar sobre isso.
Ideia de implementação:
Use HttpClient para obter remotamente o conteúdo do site do gerador de peido arco-íris: https: // chp.shadiao.app/

java Mail realiza o envio de e-mail

SpringBoot integra Scheduled para enviar e-mails regularmente

Em segundo lugar, construa o projeto

O ambiente do projeto é baseado na estrutura SpringBoot, adicionando um projeto Maven para envio de e-mail, RPC chamada remota de httpclient e Scheduled. As dependências são as seguintes:

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>

Três, escrever configuração

Antes de escrever a configuração, você precisa fazer login no seu e-mail no navegador e definir o serviço POP3 / SMTP na segurança da conta para Insira a descrição da imagem aqui
iniciar o serviço POP3 / SMTP. Você precisa inserir o código de verificação para iniciar o serviço POP3 / SMTP. Insira a descrição da imagem aqui
Copie o código de autorização e Insira a descrição da imagem aqui
marque SMTP para enviar a carta e salve-a no servidor, marque este O item é principalmente para ver quais informações você enviou, então desmarque este item. Depois que a mensagem de e-mail é enviada com sucesso, não consigo ver as informações que enviei na minha caixa de correio. Insira a descrição da imagem aqui
Escreva e configure o código de autorização spring:
mail:
username: [email protected] # Senha do meu endereço de e-mail
: xxxxxxx # SMTP | POP3 | IMAP
host do código de autorização do protocolo : smtp.qq.com # Endereço do servidor. Consulte as informações fornecidas pela operadora do serviço de caixa de correio.
propriedades:
mail:
smtp:
auth: true # Ativar
porta de verificação do protocolo smtp : 587

A quem

ela:
mail: [email protected]

Quarto, escreva a classe de inicialização SpringBoot

@EnableScheduling
@SpringBootApplication
public class BiaoBaiApp { public static void main (String [] args) { SpringApplication.run (BiaoBaiApp.class, args); } 5. Gerar automaticamente o conteúdo de envio



@Component
public class SendMessage { @Autowired private JavaMailSender mailSender; @Value (" spring. Mail. Username") private S tringfrom; @ V alue ("{spring.mail.username}") String privada de; @Valor("


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}")
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("网站获取句子失败");
    }
}

}

Seis, escreva tarefas cronometradas

@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);
}

}
Seven, empacote e execute

Se você tiver condições, pode colocar o pacote jar no servidor de remessa. Se não houver condições, você pode adicionar uma tarefa agendada no sistema win10 local e executar o pacote jar regularmente todos os dias.
O pacote jar precisa ser lançado na porta do servidor: 587, o firewall libera a porta 587.
Além da versão, também há portas http e https a serem lançadas. Insira a descrição da imagem aqui
Em seguida, inicie o pacote jar
nohup java -jar jar package> test.log &
win10 no fundo do Linux. Crie uma tarefa no agendador de tarefas, crie um Insira a descrição da imagem aqui
novo gatilho, Insira a descrição da imagem aqui
crie uma nova operação, insira o comando jar executado no programa ou script, clique em OK Insira a descrição da imagem aqui
e então você pode ver a tarefa criada . Insira a descrição da imagem aqui
8. Resumo

O código foi bastante aprimorado e existem muitas deficiências.
Por questões de tempo, ainda existem muitas áreas que podem ser otimizadas. Por exemplo, enviar e-mails com conteúdo de texto puro não é bonito. Você pode enviar e-mails em modo html para tornar o conteúdo dos e-mails enviados mais bonito.
public void sendHtmlMessage (String subject, String message) { try { MimeMessage mimeMessage = mailSender.createMimeMessage (); MimeMessageHelper helper = new MimeMessageHelper (mimeMessage); helper.setFrom (from); helper.setTo (sheMail); subject.setTo ( sheMail); ); helper.setText (message, true); // true Use html para enviar mailSender.send (helper.getMimeMessage ()); } catch (MessagingException e) { e.printStackTrace (); } Existem muitas deficiências no editor Escritório, todos são bem-vindos para deixar uma mensagem na área de comentários para discutir











Acho que você gosta

Origin blog.csdn.net/dcj19980805/article/details/114880657
Recomendado
Clasificación