Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > send SMTP mail using JavaMail with gmail account

Reply
Thread Tools

send SMTP mail using JavaMail with gmail account

 
 
jrefactors@hotmail.com
Guest
Posts: n/a
 
      02-21-2005
I want the Java application to send email using google gmail account.

The following is the output, and it cannot display "sendMail() 3..."
in the following sendMail() method. The program just hangs after
printing "sendMail() 2...", and there is no errors.

output
===============
sendMail()...
sendMail() 2...

Basically it get stucks on line
transport.connect(smtpHost, 465, "gmail account", "gmail password");

----------------------------------------------------------
public void sendMail() throws MessagingException
{
System.out.println("sendMail()...");
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");

// props.put("mail.smtp.auth", "true");

Session session = Session.getDefaultInstance(props, null);
session.setDebug(false);
MimeMessage message = new MimeMessage(session);
message.setFrom(from);
Iterator itrto = toRecipients.iterator();
while(itrto.hasNext())
{
Object obj = (Address)itrto.next();
if(obj instanceof Address){
message.addRecipient(Message.RecipientType.TO, (Address)obj);
}
}
System.out.println("sendMail() 2...");

message.setSubject(subject);
message.setContent(msgText, "text/plain");

Transport transport = session.getTransport("smtp");

//***** GET STUCK HERE!!! ******
transport.connect(smtpHost, 465, "gmail account", "gmail password");

System.out.println("sendMail() 3...");

Transport.send(message);

System.out.println("sendMail() 4...");

}
--------------------------------------------------------

any ideas? please advise.
thanks!!

 
Reply With Quote
 
 
 
 
GaryM
Guest
Posts: n/a
 
      02-21-2005
wrote in news:1109005482.258452.142720
@o13g2000cwo.googlegroups.com:

> // props.put("mail.smtp.auth", "true");


Uncomment this line.
 
Reply With Quote
 
jrefactors@hotmail.com
Guest
Posts: n/a
 
      02-21-2005

GaryM wrote:
> wrote in news:1109005482.258452.142720
> @o13g2000cwo.googlegroups.com:
>
> > // props.put("mail.smtp.auth", "true");

>
> Uncomment this line.


I uncomment line props.put("mail.smtp.auth", "true");
but it still cannot display sendMail() 3...:

sendMail()...
sendMail() 2...

But it has exception this time:

javax.mail.MessagingException: Could not connect to SMTP host:
smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTra nsport.java:867)
at
com.sun.mail.smtp.SMTPTransport.protocolConnect(SM TPTransport.java:156)
at javax.mail.Service.connect(Service.java:234)
at SMTPHandler.sendMail(SMTPHandler.java:145)
at SMTPHandlerTest.main(SMTPHandlerTest.java:33)
Exception in thread "main"



any ideas? thanks!!

 
Reply With Quote
 
GaryM
Guest
Posts: n/a
 
      02-21-2005
wrote in
news: ups.com:


>
> any ideas? thanks!!
>


I have no time to try this myself, but you can give it a go and post
back:

props.put("mail.smtp.starttls.enable","true");
 
Reply With Quote
 
GaryM
Guest
Posts: n/a
 
      02-21-2005
GaryM <gmaddr-> wrote in news:Xns9604BA3A9C8DR3344324357788499939@192.168.1 .81:

>
> I have no time to try this myself, but you can give it a go and post
> back:


OK Here is working code. I followed the instructions here, which, though it
does not even mention SMTP, still works with SMTP:

http://www.javaworld.com/javatips/jw-javatip115.html

Look for the xxxxx occurances and substiture with your credentials :

/*
* Created on Feb 21, 2005
*
*/

import java.security.Security;
import java.util.Properties;

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

public class GoogleTest {

private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String emailMsgTxt = "Test Message Contents";
private static final String emailSubjectTxt = "A test from gmail";
private static final String emailFromAddress = "";
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String[] sendTo = { ""};


public static void main(String args[]) throws Exception {

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

new GoogleTest().sendSSLMessage(sendTo, emailSubjectTxt,
emailMsgTxt, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}

public void sendSSLMessage(String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = true;

Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");

Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxxx", "xxxxxx");
}
});

session.setDebug(debug);

Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);

InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);

// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
}
 
Reply With Quote
 
praveena.philip@gmail.com
Guest
Posts: n/a
 
      02-23-2005
hello

 
Reply With Quote
 
theAmerican theAmerican is offline
Junior Member
Join Date: May 2006
Posts: 2
 
      05-15-2006
I was searching Google for advice on Gmail + javamail and found this forum. I tried Gary's code (replacing the x's with appropriate info, of course) and got the following feedback:

Code:
DEBUG: not loading system providers in <java.home>/lib
DEBUG: successfully loaded optional custom providers from URL: jar:file:/Library/Java/Extensions/javamail-1.4/lib/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded optional custom providers from URL: jar:file:/Library/Java/Extensions/javamail-1.4/lib/pop3.jar!/META-INF/javamail.providers
DEBUG: successfully loaded optional custom providers from URL: jar:file:/Library/Java/Extensions/javamail-1.4/lib/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded default providers

DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]}
DEBUG: successfully loaded optional address map from URL: jar:file:/Library/Java/Extensions/javamail-1.4/lib/smtp.jar!/META-INF/javamail.address.map

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at javax.mail.Session.getService(Session.java:607)
        at javax.mail.Session.getTransport(Session.java:541)
        at javax.mail.Session.getTransport(Session.java:484)
        at javax.mail.Session.getTransport(Session.java:464)
        at javax.mail.Session.getTransport(Session.java:519)
        at javax.mail.Transport.send0(Transport.java:155)
        at javax.mail.Transport.send(Transport.java:81)
        at login.util.GoogleTest.sendSSLMessage(GoogleTest.java:70)
        at login.util.GoogleTest.main(GoogleTest.java:29)
Caused by: java.lang.NoSuchMethodError: javax.mail.Session.getDebugOut()Ljava/io/PrintStream;
        at com.sun.mail.smtp.SMTPTransport.<init>(SMTPTransport.java:112)
        at com.sun.mail.smtp.SMTPTransport.<init>(SMTPTransport.java:97)
        ... 13 more
Exception in thread "main" javax.mail.NoSuchProviderException: smtp
        at javax.mail.Session.getService(Session.java:611)
        at javax.mail.Session.getTransport(Session.java:541)
        at javax.mail.Session.getTransport(Session.java:484)
        at javax.mail.Session.getTransport(Session.java:464)
        at javax.mail.Session.getTransport(Session.java:519)
        at javax.mail.Transport.send0(Transport.java:155)
        at javax.mail.Transport.send(Transport.java:81)
        at login.util.GoogleTest.sendSSLMessage(GoogleTest.java:70)
        at login.util.GoogleTest.main(GoogleTest.java:29)
What is it I'm doing wrong?
 
Reply With Quote
 
theAmerican theAmerican is offline
Junior Member
Join Date: May 2006
Posts: 2
 
      05-15-2006
Actually, nevermind. The code worked after I removed all the individual protocols from my /Library/Java/Extensions folder. I hadn't realized they were redundant.
 
Reply With Quote
 
Mritunjay Mritunjay is offline
Junior Member
Join Date: Jul 2006
Posts: 2
 
      07-20-2006
Hi,

I am facing problem while sending attachment thru java code(smtp mail ). kindly help me in this regard.

regards,
Mritunjay
 
Reply With Quote
 
Mritunjay Mritunjay is offline
Junior Member
Join Date: Jul 2006
Posts: 2
 
      07-20-2006
OK Here is working code. I followed the instructions here, which, though it
does not even mention SMTP, still works with SMTP:

http://www.javaworld.com/javatips/jw-javatip115.html

Look for the xxxxx occurances and substiture with your credentials :

/*
* Created on Feb 21, 2005
*
*/

import java.security.Security;
import java.util.Properties;

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

public class GoogleTest {

private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String emailMsgTxt = "Test Message Contents";
private static final String emailSubjectTxt = "A test from gmail";
private static final String emailFromAddress = "";
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String[] sendTo = { ""};


public static void main(String args[]) throws Exception {

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

new GoogleTest().sendSSLMessage(sendTo, emailSubjectTxt,
emailMsgTxt, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}

public void sendSSLMessage(String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = true;

Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");

Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxxx", "xxxxxx");
}
});

session.setDebug(debug);

Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);

InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);

// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
}[/QUOTE]



Hello,
How do i send attachment with smtp mail . can u please tell me the code

regards,
Mritunjay
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
JavaMail send mail without using default port 25 Nicola Trevisan Java 14 04-02-2011 03:38 AM
Re: smtplib send email by using gmail smtp server Gabriel Genellina Python 0 05-03-2009 06:08 PM
send email using gmail as smtp Junkone Ruby 3 12-20-2007 09:27 PM
how to send mail via AUTHENTICATED smtp account? RN ASP .Net 3 02-23-2005 02:22 AM
Using JavaMail on W2K PC to send mail message usign outlook Neil Daniell Java 0 01-04-2005 02:47 AM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57