Как отправить электронное письмо с ПК с помощью Java-программы? - PullRequest
1 голос
/ 10 марта 2012

Что требуется для отправки почты с моего компьютера программой Java?Я имею в виду, что любые изменения, такие как включение или отключение параметров, должны выполняться с ПК.

Ответы [ 4 ]

2 голосов
/ 10 марта 2012

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

Редактировать : если, как вы упоминаете ниже, у вас нет SMTPдоступ к серверу, вы можете зарегистрировать учетную запись Gmail для своего приложения и использовать SMTP-сервер Gmail (очевидно, не идеальный для бизнес-приложения, но отлично подходит в качестве личного приложения. Для получения инструкций о том, как настроить это, прочитайте это Lifehacker Пост.

2 голосов
/ 10 марта 2012

Java имеет встроенные библиотеки для этого.

import javax.mail.*;
import javax.mail.internet.*;

- это библиотеки, которые вам понадобятся.

Вам нужно иметь mail.jar в вашем classpath, потому что он не является частью ядра Java.

0 голосов
/ 10 марта 2012

Просто измените адрес электронной почты и пароль.В этом примере используется Gmail.Кроме того, вы можете иметь столько получателей, сколько пожелаете.

 import java.util.Properties;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;


 public class AnotherMail {

public static void main(String... args) {
    String host = "smtp.gmail.com";
    String from = "myEmail@gmail.com";
    String pass = "MyPassword";
    Properties props = System.getProperties();
    props.put("mail.smtp.starttls.enable", "true"); // added this line
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", pass);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");

    String[] to = {"someRecipient@gmail.com"}; // added this line
    try {
        Session session = Session.getDefaultInstance(props, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));

        InternetAddress[] toAddress = new InternetAddress[to.length];

        // To get the array of addresses
        for (int i = 0; i < to.length; i++) { // changed from a while loop
            toAddress[i] = new InternetAddress(to[i]);
        }
        System.out.println(Message.RecipientType.TO);

        for (int i = 0; i < toAddress.length; i++) { // changed from a while loop
            message.addRecipient(Message.RecipientType.TO, toAddress[i]);
        }
        message.setSubject("sending in a group");
        message.setText("Welcome to JavaMail");
        Transport transport = session.getTransport("smtp");
        transport.connect(host, from, pass);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

    } catch (MessagingException mx) {
        mx.printStackTrace();
    }

}
 }
0 голосов
/ 10 марта 2012

Канонический способ создания и отправки сообщений электронной почты на основе MIME из Java (таким образом, он может содержать HTML и изображения), использует JavaMail, который является очень функциональным пакетом, и который даже можно научить отправлять почту через GMail по SSLесли у вас нет внутреннего SMTP-сервера.

См. http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/ для двух примеров, как это сделать.

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