This week's book giveaway is in the Mac OS forum.
We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line!
See this thread for details.
The moose likes Other JSE/JEE APIs and the fly likes smtps and javamail Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Other JSE/JEE APIs
Bookmark "smtps and javamail" Watch "smtps and javamail" New topic
Author

smtps and javamail

Michal Palec
Greenhorn

Joined: Feb 07, 2007
Posts: 7
Hello I have problem with sending emails via smtps..This is debug info:

DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
t javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at mail.Send.send(Send.java:99)
at mail.MainFrame.jBu_Send_actionPerformed(MainFrame.java:327)
at mail.Frame_jBu_Send_actionAdapter.actionPerformed(MainFrame.java:444)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 33 more

And this code of one of classes in my program:

package mail;

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

public class Send {
public Send(){
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

public static void send(String smtpServer, String user, String pass, String to, String from, String subject, String body, File[] files){
try{
Properties props = System.getProperties();
Authenticator auth = new MyAuthenticator();
props.put("mail.smtps.auth", "true");
props.put("mail.smtps.host", smtpServer);
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(true);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));
msg.setSubject(subject);
msg.setHeader("X-Mailer", "PastelMail v.1.0");
msg.setSentDate(new Date());

if (files!=null){
Multipart multi = new MimeMultipart();
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setText(body);
multi.addBodyPart(bodyPart);
for (int i=0; i<files.length; i++){
bodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(files[i].getAbsolutePath());
bodyPart.setDataHandler(new DataHandler(source));
bodyPart.setFileName(files[i].getName());
multi.addBodyPart(bodyPart);
}
msg.setContent(multi);
}else{
msg.setText(body);
}

msg.saveChanges();

if (user!=null && pass!=null){
Transport transport = session.getTransport("smtps");
transport.connect(smtpServer, user, pass);
JOptionPane.showMessageDialog(null, smtpServer+" "+user+" "+pass+" "+transport.isConnected());
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}else
// -- Send the message --

try{
Transport.send(msg);
}catch(SendFailedException ex){
Address[] ad = ex.getInvalidAddresses();
String s = "Bad adresses:\n";
for (int i=0; i<ad.length; i++){
s+=ad[i].toString();
s+="\n";
s+=ex.getMessage();
}
JOptionPane.showMessageDialog(null, s, "Error", JOptionPane.ERROR_MESSAGE);
}
JOptionPane.showMessageDialog(null, "Mail sent OK", "Sent information", JOptionPane.INFORMATION_MESSAGE);

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

public static void send(String smtpServer, String user, String pass, String to, String from, String subject, String body){
send(smtpServer, user, pass, to, from, subject, body, null);
}

private void jbInit() throws Exception {
}
}

I tried to add also:

props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.ssl", "true");
props.put("mail.smtps.starttls.enable","true");
props.put("mail.smtps.socketFactory.port", "25");
props.put("mail.smtps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtps.socketFactory.fallback", "false");

but it's not helipg Maybe someone could help me please. Best regards.
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

Do you have an SMTP server running locally?


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Michal Palec
Greenhorn

Joined: Feb 07, 2007
Posts: 7
No I have account created in o2.pl and I connect to their smtp server. That is why I don't understand this probe to connecto to localhost :/
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

Hmm, that is odd. What value do you pass in to your own send method for smtpServer?
Michal Palec
Greenhorn

Joined: Feb 07, 2007
Posts: 7
The address of smtp server. It deepend of the account but e.g. smtp.o2.pl. It works great when I use smtp not smtps protocol :/
 
Don't get me started about those stupid light bulbs.
 
subject: smtps and javamail