Как настроить почтовый сервер для использования с JavaMail?

Вот метод, который дает вам все комбинации заданного размера из строки случайной длины. Подобно решению quinmars, но работает для разнообразного ввода и k.

Код можно изменить для обертывания, т. Е. 'Dab' из ввода 'abcd' wk = 3.

public void run(String data, int howMany){
    choose(data, howMany, new StringBuffer(), 0);
}


//n choose k
private void choose(String data, int k, StringBuffer result, int startIndex){
    if (result.length()==k){
        System.out.println(result.toString());
        return;
    }

    for (int i=startIndex; i<data.length(); i++){
        result.append(data.charAt(i));
        choose(data,k,result, i+1);
        result.setLength(result.length()-1);
    }
}

Выход для «abcde»:

abc abd abe acd ace ade bcd bce bde cde

16
задан BalusC 2 June 2010 в 13:56
поделиться

1 ответ

Для начала вам нужен SMTP-сервер. Он необходим, чтобы иметь возможность отправлять электронную почту. Точно так же, как вам нужен HTTP-сервер, чтобы иметь возможность обслуживать веб-сайт. У вас, очевидно, уже есть HTTP-сервер (с сервлетконтейнером), но у вас еще не настроен SMTP-сервер.

Вы можете воспользоваться SMTP-сервером, связанным с вашим существующим аккаунтом электронной почты, например, аккаунтом вашего интернет-провайдера или публичными почтовыми ящиками, такими как Gmail, Yahoo и т.д. Подробности подключения SMTP можно найти в их документации. Обычно достаточно знать имя хоста и номер порта. имя пользователя/пароль такие же, как и для вашей учетной записи электронной почты.

Имя хоста и номер порта должны быть установлены как свойства SMTP для JavaMail:

Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp");
properties.put("mail.smtp.host", "smtp.example.com"); // smtp.gmail.com?
properties.put("mail.smtp.port", "25");

Имя пользователя/пароль должны быть использованы в аутентификаторе следующим образом:

properties.put("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("yourusername", "yourpassword");
    }
};

Затем вы можете получить почтовую сессию следующим образом:

Session session = Session.getDefaultInstance(properties, authenticator);

С учетной записью вашего провайдера или публичными почтовыми ящиками, вы, однако, ограничены в использовании вашего собственного адреса в поле From письма и обычно также в количестве писем, которые вам разрешено отправлять через определенные промежутки времени. Если вы хотите обойти это, то вам нужно установить свой собственный SMTP-сервер, например Apache James, который основан на Java, или Microsoft Exchange и так далее.

В конце концов, я советую вам пройти через учебник по JavaMail, чтобы лучше понять суть.

28
ответ дан 30 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: