2016-04-07 2 views
1

пожалуйста, могу ли я получить некоторую помощь в установлении этого всплывающего окна ошибки говоря:Email в Java

javax.mail.NoSuchProviderException: Нет поставщика для SMTP

Я добавил импорт:

import java.io.File; 
import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.PasswordAuthentication; 
import javax.mail.*; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
import javax.swing.JFileChooser; 
import javax.swing.JOptionPane; 

Поймите, если я смогу помочь.

private void SendButtonActionPerformed(java.awt.event.ActionEvent evt) {           

    String To = to.getText(); 
    String Subject = subject.getText(); 
    String Text_content = jTextArea1.getText(); 

    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.socketFactory.port", "465"); 
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "465"); 

    Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("[email protected]", "user123"); 
     } 
    } 
    ); 
    try { 

     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress("[email protected]")); 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(To)); 
     message.setSubject(Subject); 
     message.setText(Text_content); 
     Transport.send(message); 

    } catch (Exception e) { 

     JOptionPane.showMessageDialog(null, e); 

    } 


}   
+0

Это не javascript. – evolutionxbox

+0

У вас есть smtp.jar в вашем пути к классу? – dacuna

+0

И это не имеет никакого отношения к Свинг. –

ответ

0

Просьба ввести код с вашими учетными данными. Если вы находитесь за прокси-сервером, добавьте настройки прокси-сервера в метод setProxy.

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class TestMail { 
    public static void main(String[] args) { 
     sendMail(); 
    } 

    private static void sendMail() { 
     setProxy(); 
     System.out.println("Started"); 

     String Subject = "Test mail"; 
     String Text_content = ""; 
     String mailId = "[email protected]"; 
     String pass = "userpass"; 
     String To = mailId; 

     Properties props = new Properties(); 

     props.put("mail.smtp.starttls.enable", true); // added this line 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.user", mailId); 
     props.put("mail.smtp.password", pass); 
     props.put("mail.smtp.port", "587"); 
     props.put("mail.smtp.auth", true); 

     Session session = Session.getDefaultInstance(props, null); 
     try { 
      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress()); 
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(To)); 
      message.setSubject(Subject); 
      message.setText(Text_content); 

      Transport transport = session.getTransport("smtp"); 
      transport.connect(props.getProperty("mail.smtp.host"), mailId, pass); 
      System.out.println("Transport: " + transport.toString()); 
      transport.sendMessage(message, message.getAllRecipients()); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    private static void setProxy() { 
     /*System.setProperty("http.proxyHost", ""); 
     System.setProperty("http.proxyPort", ""); 
     System.setProperty("https.proxyHost", ""); 
     System.setProperty("https.proxyPort", ""); 
     */ 
    } 
} 
Смежные вопросы