Я пытаюсь отправить письмо программно с помощью Java в Eclipse. Я правильно настроил проект, используя самый последний JDK 1.8.0_45. Под этим я подразумеваю, что я включил mailapi.jar
и smtp.jar
.Eclipse Java, Отправить письмо от Gmail SMTP programatically
Я прочитал множество других сообщений по этой теме, и я знаю, что мой путь построения Java должен включать в себя mail.jar
. Однако, когда я искал папку, не было найдено mail.jar
; mailapi.jar
был самым близким и, похоже, разрешил ошибки включения, которые я получал без него.
Вот мой код:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class emailer {
private static String host = "smtp.gmail.com";
private static String user = "**********";
private static String pass = "***********";
public static void sendEmail(String fromAddr, String toAddr, String subject, String body)
{
Properties prop = System.getProperties();
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", host);
prop.put("mail.smtp.user", user);
prop.put("mail.smtp.password", pass);
prop.put("mail.smtp.port", "465");
prop.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(prop);
MimeMessage message = new MimeMessage(session);
try
{
message.setFrom(new InternetAddress(fromAddr));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddr));
message.setSubject(subject);
message.setText(body);
Transport transport = session.getTransport("smtp");
transport.connect(host, user, pass);
transport.send(message, message.getAllRecipients());
//The above line has a warning message
//"The static method send(Message, Address[]) from the type Transport should be accessed in a static way"
transport.close();
System.out.println("done");
}
catch (AddressException e) {e.printStackTrace();}
catch (MessagingException e) {e.printStackTrace();}
}
}
Код компилируется без ошибок, и при беге, продолжает работать бесконечно, никогда не нарушая ни остановки. Так что, к сожалению, у меня нет трассировки стека, чтобы показать ... Любая помощь будет принята с благодарностью.
Рекомендовать использовать apache commons mail https://commons.apache.org/proper/commons-email/userguide.html На самом деле существует образец gmail. – kevcodez