Use Authentication: Yes
Use Secure Connection: Yes (this can be TLS or SSL depending on your mail client)
Username: your GMail account
Password: your GMail password
Port: 465 or 587
(see http://kb.siteground.com/article/How_to_use_Googles_free_SMTP_server.html from which I have copied this info)
Remember to add activation.jar and mail.jar to your CP.
If you get
java.net.UnknownHostException: smtp.gmail.com
try 66.249.93.109 instead
if you are behind a Proxy; you are screwed
http://www.oracle.com/technetwork/java/faq-135477.html#proxy
see also here for more on JavaMail API
and here for a working example.
Create an account in gmail, say "hellopippo@gmail.com" with password "hello"
This code should definitely work - unless you are behind a proxy:
package com.pierre.email; import javax.mail.*; import javax.mail.internet.*; import java.util.*; /** * A simple email sender class. */ public class SimpleSender { /** * Main method to send a message given on the command line. */ public static void main(String args[]) { try { String to="vernetto@yahoo.com"; String from="hellopippo@gmail.com"; String subject="fanculo"; String body="sei scemissimo"; send(to, from, subject, body); } catch (Exception ex) { System.out.println("Usage: java com.pierre.email.SimpleSender" + "toAddress fromAddress subjectText bodyText"); } System.exit(0); } /** * "send" method to send the message. */ public static void send(String to, String from , String subject, String body) { String smtpServer = "smtp.gmail.com"; // or 74.125.91.109 String username = "hellopippo@gmail.com"; String password = "hello"; try { Properties props = System.getProperties(); // -- Attaching to default Session, or we could start a new one -- props.put("mail.smtp.host", smtpServer); props.put("mail.smtp.port", "587"); // 587 465 props.put("mail.smtp.user", username); props.put("mail.smtp.password", password); props.put("mail.smtp.starttls.enable","true"); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, null); // -- Create a new message -- Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); message.setSubject(subject); message.setText(body); // -- Set some other header information -- message.setHeader("X-Mailer", "ThisIsPierre"); message.setSentDate(new Date()); // -- Send the message -- Transport transport = session.getTransport("smtp"); transport.connect(smtpServer, username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("Message sent OK."); } catch (Exception ex) { ex.printStackTrace(); } } }
Download JavaMail here
No comments:
Post a Comment