Почта не отправляется при запуске файла RUNNABLE JAR - PullRequest
1 голос
/ 04 июля 2019

Я пытаюсь отправить электронное письмо, используя пакет javax.mail.*

В eclipse все работает нормально, но после экспорта в Runnable Jar электронная почта не отправляет .Можете ли вы помочь мне понять, в чем может быть проблема?Если есть проблема с использованием "using javax.mail.*", есть ли альтернативная библиотека для использования?

При экспорте я использую «Упаковать необходимые библиотеки в сгенерированный JAR»

Спасибо.

import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart; 

public class sadasddas {

    public static String ErrorMsg;
    private static final String MAIL_SERVER = "smtp";
    private static final String SMTP_HOST_NAME = "smtp.mail.com";
    private static final int SMTP_HOST_PORT = 587;
    private static final String USER_NAME = "someting@mail.com";  
    private static final String PASSWORD = "*****************";

    public static void main(String[] args) {
        String[] to = { "dest@mail.com" }; 
        String subject = "Java Send Mail Attachement Example";
        String body = "Welcome to Java Mail!<h1>Hello</h1>";
        String[] attachFiles = new String[3];
        attachFiles[0] = "C:/Til/Result/download.txt";
        attachFiles[1] = "C:/Til/Result/Printer.txt";
        attachFiles[2] = "C:/Til/Result/software.txt";
        try {
            sendEmailWithAttachments(to, subject, body, attachFiles);
            System.out.println("Email Sent....!");
        } catch (Exception ex) {
            System.out.println("Could not send email....!");
            ex.printStackTrace();
        }
    }
    public static void sendEmailWithAttachments(String[] to, String subject, String body, String[] attachFiles) throws AddressException, MessagingException {
       Properties properties = System.getProperties();     
        properties.put("mail.smtp.starttls.enable", "true");
        properties.put("mail.smtp.host", SMTP_HOST_NAME);
        properties.put("mail.smtp.user", USER_NAME);
        properties.put("mail.smtp.password", PASSWORD);
        properties.put("mail.smtp.port", SMTP_HOST_PORT);
        properties.put("mail.smtp.auth", "true");
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(USER_NAME, PASSWORD);
            }
        }; 
        Session session = Session.getInstance(properties, auth);        
        MimeMessage message = new MimeMessage(session);
        try {       
            message.setFrom(new InternetAddress(USER_NAME));
            InternetAddress[] toAddress = new InternetAddress[to.length];
            for( int i = 0; i < to.length; i++ ) {
                toAddress[i] = new InternetAddress(to[i]);
            }
            for( int i = 0; i < toAddress.length; i++) {
                message.addRecipient(Message.RecipientType.TO, toAddress[i]);
            }
            message.setSubject(subject);
            message.setSentDate(new Date());
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setContent(body, "text/html");
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
            if (attachFiles != null && attachFiles.length > 0) {
                for (String filePath : attachFiles) {
                    MimeBodyPart attachPart = new MimeBodyPart();
                    try {
                        attachPart.attachFile(filePath);
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                    multipart.addBodyPart(attachPart);
                }
            }
            message.setContent(multipart); 
            Transport transport = session.getTransport(MAIL_SERVER);
            transport.connect(SMTP_HOST_NAME, SMTP_HOST_PORT, USER_NAME, PASSWORD);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            System.out.println("Sent Message Successfully....");
        }
        catch (AddressException ae) {
            ae.printStackTrace();
        }
        catch (MessagingException me) {
            me.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...