Ответить на электронную почту автомати c Java J2EE (javamail) - PullRequest
0 голосов
/ 10 февраля 2020

publi c class SendEmail {

public static void main(String[] args) {
    //authentication info
    final String username = "mailing@gmail.com";
    final String password = "pass";
    String fromEmail = "mailing@gmail.com";
    String toEmail = "mailing@yahoo.com";

    Properties properties = new Properties();
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.starttls.enable", "true");
    properties.put("mail.smtp.host", "smtp.gmail.com");
    properties.put("mail.smtp.port", "587");

    Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username,password);
        }
    });
    //Start our mail message
    MimeMessage msg = new MimeMessage(session);
    try {
        msg.setFrom(new InternetAddress(fromEmail));
        msg.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
        msg.setSubject("Subject Line");

        Multipart emailContent = new MimeMultipart();

        //Text body part
        MimeBodyPart textBodyPart = new MimeBodyPart();
        textBodyPart.setText("My multipart text");

        //Attachment body part.
        MimeBodyPart pdfAttachment = new MimeBodyPart();
        pdfAttachment.attachFile("/Users/hmidi/Downloads/BigData.pdf");

        //Attach body parts
        emailContent.addBodyPart(textBodyPart);
        emailContent.addBodyPart(pdfAttachment);

        //Attach multipart to message
        msg.setContent(emailContent);

        Transport.send(msg);
        System.out.println("Sent message");
    } catch (MessagingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

} `Я пытаюсь разработать веб-приложение на JavaEE. Я хотел бы добавить автоматическую c функцию отправки электронной почты, как после регистрации, но я понятия не имею. если бы кто-нибудь мог мне помочь, я был бы очень признателен.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020
    SimpleMailMessage mailMessage = new SimpleMailMessage();
    mailMessage.setTo(userTable.getEmail());
    mailMessage.setSubject("Complete Registration!");
    mailMessage.setFrom("v**********@gmail.com");
    mailMessage.setText("To confirm your account, please click here : "
            );
    return mailMessage;
    javaMailSender.sendEmail(mailMessage);

В вашем файле application.properties

spring.mail.host=smtp.gmail.com
spring.mail.password=*************
spring.mail.username=v*************@gmail.com
spring.mail.port=587

Теперь, как только пользователь зарегистрируется, вызовите эту функцию. Обязательно сделайте пользователя disable, пока он не подтвердит создание аккаунта. при создании пользователя создайте дополнительный столбец в пользовательской таблице с помощью boolean isEnable. По умолчанию это будет ложью, если это не будет явным образом, т. Е. (В случае щелчка по URL-адресу подтверждения) Укажите URL-адрес, который будет вызываться по почте, и при щелчке по почте откроется страница с успешной регистрацией и установите isEnable=true в базе данных. Теперь каждый раз, когда пользователь регистрируется, он создает свою запись в базе данных с isEnable как false. Затем выполните проверку каждый раз, когда userlogin. Вы можете легко сделать это в весенней безопасности.

В ваше письмо отправляется уникальный идентификатор (UUID), связанный со ссылкой (например, localhost:8080/confirmRegisteration?token=djdkfjksdfjksdhfj Это будет go для подтверждения конечной точки подтверждения), по которому должен щелкнуть пользователь. Сохраните этот UUID в своей базе данных и во время подтверждения. Проверьте, есть ли UUID в ссылке или нет. Если вы указали действительный период времени. затем проверьте это тоже. После этого просто установите для свойства isEnable значение true и удалите маркер UUID из базы данных.

0 голосов
/ 11 февраля 2020

Эта ссылка показывает, как отправить электронное письмо в j2ee: https://www.codejava.net/java-ee/jsp/sending-e-mail-with-jsp-servlet-and-javamail. Поэтому, если вы хотите подтвердить учетную запись после регистрации, просто сгенерируйте код для отправки на это электронное письмо и сохраните этот код в сеансе, а затем сравните его с тем, что вводит пользователь на странице подтверждения. Надеюсь, вы решите это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...