Javamail API, как я могу сохранить сообщение в отправлено - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь отправить электронное письмо от acc1 до acc2. Кажется, код работает, и я могу найти свою почту на acc2. Но я не могу найти его в папке "Отправленные" на acc1. (В качестве примера я использую яндекс).

Я попытался использовать протокол imap и сохранить его после, но код завершается без исключений, но сообщение все равно не может быть найдено в отправленном.

Мой код:

public class sendMail {
    public static void main(String[] args) {
        String to = "TO_ACC";         // sender email
        String from = "FROM_ACC";       // receiver email

        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", "smtp.yandex.ru");
        properties.setProperty("mail.smtp.port", "465");
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        properties.setProperty("mail.smtp.socketFactory.port", "465");
        properties.setProperty("mail.smtp.auth", "true");

        Session session = Session.getInstance(properties,new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("FROM_ACC","FROM_PASS");
            }
        }); // default session

        try {
            MimeMessage message = new MimeMessage(session); // email message

            message.setFrom(new InternetAddress(from)); // setting header fields

            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.addRecipient(Message.RecipientType.CC, new InternetAddress(to));
            message.addRecipient(Message.RecipientType.BCC, new InternetAddress(to));

            message.setSubject("new hjhjh"); // subject line

            // actual mail body
            message.setText("some kjkjk");

            // Send message
            Transport.send(message); System.out.println("Email Sent successfully....");

            //Copy in sent

            Store store = session.getStore("imap");

            store.connect("imap.yandex.ru",993,"FROM_ACC","FROM_PASS" );
            Folder folder = store.getFolder("Sent");
            folder.open(Folder.READ_WRITE);
            message.setFlag(Flags.Flag.SEEN, true);
            folder.appendMessages(new Message[] {message});
            store.close();
        } catch (MessagingException mex){ mex.printStackTrace(); }
    }

1 Ответ

0 голосов
/ 28 августа 2018

только что изменилось с Store store = session.getStore("imap"); на Store store = session.getStore("imaps");

также добавлено новое свойство

 properties.setProperty("mail.imap.starttls.enable", "true");
...