Forums Register Login

java mail smtp host prob.

+Pie Number of slices to send: Send
The demo runs fine. It finds the SMTP server just fine. When I use the same code in my app the Transport trys to use "localhost", port 25. In both I set the props the same way. Anyone with an idea? Here's the demo:
import java.lang.Thread.*;
import java.util.*;
import java.text.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class msgsendsample {
static String msgText = "How's this for a return address?";
public static void main(String[] args) {

String to = "joseph.angott@mail.com";
String from = "justanotherperson";
String host = "xxx.xxx.xxx.xxx";
boolean debug = true;
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", host);

Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
for(int v =0 ; v < 5 ; v++ ){
try {
// create a message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("Sending you an anonymous email.");
msg.setSentDate(new Date());
// If the desired charset is known, you can use
// setText(text, charset)
msg.setText(msgText);
Transport.send(msg);
} catch (MessagingException mex) {
System.out.println("\n--Exception handling in msgsendsample.java");
mex.printStackTrace();
System.out.println();
Exception ex = mex;
do {
if (ex instanceof SendFailedException) {
SendFailedException sfex = (SendFailedException)ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null) {
System.out.println(" ** Invalid Addresses");
if (invalid != null) {
for (int i = 0; i < invalid.length; i++)
System.out.println(" " + invalid[i]);
}
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if (validUnsent != null) {
System.out.println(" ** ValidUnsent Addresses");
if (validUnsent != null) {
for (int i = 0; i < validUnsent.length; i++)
System.out.println(" "+validUnsent[i]);
}
}
Address[] validSent = sfex.getValidSentAddresses();
if (validSent != null) {
System.out.println(" ** ValidSent Addresses");
if (validSent != null) {
for (int i = 0; i < validSent.length; i++)
System.out.println(" "+validSent[i]);
}
}
}
System.out.println();
if (ex instanceof MessagingException)
ex = ((MessagingException)ex).getNextException();
else
ex = null;
} while (ex != null);
}
try{
Thread.sleep(12000);
}catch(Exception e){
}
}
}
private static void usage() {
System.out.println("usage: java msgsendsample <to> <from> <smtp> true|false");
}
}

***************************************************************
And my app which is not functioning:
***************************************************************
package com.lsi.cendant.mailengine;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.*;
import java.util.*;
import javax.activation.*;
import com.lsi.cendant.objects.*;
public class Mailer {
protected static Message prepareHeader(SendMailObj sendMailObj)throws IOException, AddressException,MessagingException {

Properties props = new Properties();
String host = sendMailObj.getSmtpHost();
System.out.println (host);
props.put("mail.smtp.host", host);

Session session = Session.getDefaultInstance(props,null);
session.setDebug(true);
System.out.println ("Props is : " + props.toString());
Message msg = new MimeMessage(session);
msg.setText("I hope I get this.");


int number = 0;
for (int j = 0 ; j < sendMailObj.getToAddr().length ; j++){
if (sendMailObj.getToAddr()[j] == null)
break;
number = j + 1;
}
System.out.println("Getting ready to add the TO Addr's : " + number);
InternetAddress toAddr[] = new InternetAddress[number];
String [] toAddresses = sendMailObj.getToAddr();
for (int i = 0 ; i < number ; i++){
toAddr [i] = new InternetAddress(toAddresses[i]);
System.out.println("Added : " + toAddresses[i]);
}
msg.addRecipients(Message.RecipientType.TO,toAddr);
System.out.println("I have added the TO Addr's");
for (int j = 0 ; j < sendMailObj.getFromAddr().length ; j++){
if (sendMailObj.getFromAddr()[j] == null)
break;
number = j + 1;
}
System.out.println("Getting ready to add the FROM Addr's : " + number);
InternetAddress fromAddr[] = new InternetAddress[number];
String [] fromAddresses = sendMailObj.getFromAddr();
for (int i = 0 ; i < number ; i++){
fromAddr [i] = new InternetAddress(fromAddresses[i]);
System.out.println("Added : " + fromAddresses[i]);
}
try{
msg.addFrom(fromAddr);
}catch (Exception e){
// InternetAddress errorFromAddr [] = {new InternetAddress("EmailerProg@mail.com")};
// msg.addFrom(errorFromAddr);
}
System.out.println("I have added the FROM Addr's");
msg.setSubject(sendMailObj.getSubject());
msg.setSentDate(new Date());

System.out.println("RECIP : " + msg.getRecipients(Message.RecipientType.TO).length);
msg.setText(sendMailObj.getMessage());

return msg;
}
public static void sendMail(SendMailObj sendMailObj)throws IOException, AddressException, MessagingException {
Message msg = null;
try{
msg = prepareHeader (sendMailObj);
Transport.send(msg);
} catch (MessagingException mex) {
System.out.println("\n--Exception handling in Mailer.java");
mex.printStackTrace();
System.out.println();
Exception ex = mex;
do {
if (ex instanceof SendFailedException) {
SendFailedException sfex = (SendFailedException)ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null) {
System.out.println(" ** Invalid Addresses");
if (invalid != null) {
for (int i = 0; i < invalid.length; i++)
System.out.println(" " + invalid[i]);
}
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if (validUnsent != null) {
System.out.println(" ** ValidUnsent Addresses");
if (validUnsent != null) {
for (int i = 0; i < validUnsent.length; i++)
System.out.println(" "+validUnsent[i]);
}
}
Address[] validSent = sfex.getValidSentAddresses();
if (validSent != null) {
System.out.println(" ** ValidSent Addresses");
if (validSent != null) {
for (int i = 0; i < validSent.length; i++)
System.out.println(" "+validSent[i]);
}
}
}
System.out.println();
if (ex instanceof MessagingException)
ex = ((MessagingException)ex).getNextException();
else
ex = null;
} while (ex != null);
}
try{
Thread.sleep(12000);
}catch(Exception e){
}
}
}

The sleep statements are there for debuging purposes in my IDE. else the dos window disappears to fast for me to read.
What's gotten into you? Could it be this tiny ad?
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 1189 times.
Similar Threads
Java Mail
sending mail to internet servers
Unsent mail through javamail
How to Make Sure Class Finishes in Spite of Exception
java mail smtp host prob.
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 14:58:39.