Я включаю отладку, чтобы отследить, что происходит. Все выглядит хорошо, но одна электронная почта приходит в себя через день, а некоторые горячие и gmail просто исчезают.
Чтобы проверить почтовый сервер с одного из наших серверов UNIX:
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
public class Mail {
/// example command line run
public static void main(String[] args) {
String sArray[] = new String[] {"tim.spann@somedomain.com", "tspann@timmail.com", "tspannjava@joemail.com"};
List<String> emails = Arrays.asList(sArray);
Iterator<String> iterator = emails.iterator();
while (iterator.hasNext()) {
Mail.sendEmail("test from test", "message", iterator.next() );
}
}
/**
* size of buffer
*/
public static final int gkBUFFER_SIZE = 256;
/**
* getCurrentDateTime
* @return Date current date
*/
public final static Date getCurrentDateTime() {
return new Date(System.currentTimeMillis());
}
/**
* sendEmail
* @param subject subject of email
* @param message message text
* @param emailAddress email address to send to
* @return String log of errors/status
*/
public final static String sendEmail(String subject, String message,
String emailAddress) {
// email sent
boolean emailSent = true;
// email message
StringBuffer emailLoggingMessage =
new StringBuffer(Mail.gkBUFFER_SIZE);
// start of message
emailLoggingMessage
.append("Email:")
.append(emailAddress).append(System.getProperty("line.separator"));
// Email Properties
Properties props = new Properties();
// add properties from properties file
props.put("mail.smtp.host",
"mymail.mydomain.com");
props.put("mail.debug",
"true");
props.put("mail.smtp.port","25");
// -- login
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("nt domainntid", "ntpassword");
}
});
// / -------------
// turn on debug mode
session.setDebug(true);
Message msg = new MimeMessage(session);
InternetAddress addressFrom = null;
try {
addressFrom =
new InternetAddress("Timothy.Spann@SomeSenderDomain.com");
} catch (AddressException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
try {
msg.setFrom(addressFrom);
} catch (MessagingException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
// recipient
InternetAddress addressTo = null;
try {
addressTo = new InternetAddress(emailAddress);
} catch (AddressException e) {
e.printStackTrace();
// refactor this
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
// add to address as recipient
try {
msg.setRecipient(Message.RecipientType.TO, addressTo);
} catch (MessagingException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
// Setting the Subject and Content Type
try {
msg.setSubject(subject);
} catch (MessagingException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
try {
msg.setContent(message,"text/plain");
} catch (MessagingException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
try {
Transport.send(msg);
} catch (MessagingException e) {
e.printStackTrace();
emailLoggingMessage.append(e.getLocalizedMessage()).append(
System.getProperty("line.separator"));
emailSent = false;
}
// sent message
if (emailSent) {
emailLoggingMessage.append("Email successfully sent.")
.append(System.getProperty("line.separator"));
}
// return message
return emailLoggingMessage.toString();
}
}
Я тестирую на сервере UNIX с:
— mail.sh
export ANT_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m" export JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MaxPermSize=1024m" export CLASSPATH=$CLASSPATH:dsn.jar:mail.jar:mailapi.jar:pop3.jar:smtp.jar:activation.jar:imap.jar:ojdbc14.jar:runtime12.jar:. javac Mail.java java Mail > mail.txt 2&> mailerr.txt
Журнал отладки
DEBUG: JavaMail version 1.4.4
DEBUG: URL jar:file:/home/tspann/mail/pop3.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/home/tspann/mail/pop3.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/home/tspann/mail/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/home/tspann/mail/smtp.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/home/tspann/mail/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/home/tspann/mail/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.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.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc],
com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,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 resource: /META-INF/javamail.default.address.map
DEBUG: URL jar:file:/home/tspann/mail/smtp.jar!/META-INF/javamail.address.map
DEBUG: successfully loaded resource: jar:file:/home/tspann/mail/smtp.jar!/META-INF/javamail.address.map
DEBUG: setDebug: JavaMail version 1.4.4
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "SomeSenderDomain.com", port 25, isSSL false
220 SomeSenderDomain.com SMTP Ready.
DEBUG SMTP: connected to host "SomeSenderDomain.com", port: 25
EHLO timspann.cool.com
250-ESMTP Server Ready
250-SIZE 0
250-DSN
250-STARTTLS
250 TLS
DEBUG SMTP: Found extension "SIZE", arg "0"
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "TLS", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<Timothy.Spann@SomeSenderDomain.com>
250 +OK Sender OK
RCPT TO:<tim.spann@somedomain.com>
250 +OK Recipient OK
DEBUG SMTP: Verified Addresses
DEBUG SMTP: tim.spann@somedomain.com
DATA
354 Start mail input, end with '<CR><LF>.<CR><LF>'
From: Timothy.Spann@SomeSenderDomain.com
To: tim.spann@somedomain.com
Message-ID: <117704452.0.1350396539475.JavaMail.tspann@tspann.cool.com>
Subject: test from test
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
message
.
250 +OK message queued for delivery.
QUIT
221 Service closing transmission channel closing connection
Проблемы с IBM AIX Websphere JDK
JavaMail API
транспорта
FSQ
Обзор
Javamail Документы
Javamail Docs2
Javamail Readme
Обзор SMTP-пакетов
JavaMail без сервера
JavaMail
Проблемы IBM с SSL TLS / GMAIL
Тонкий клиент
IBM WAS security
Файл java.security в / base_v61 / java / jre / lib / security
Порт 25
Gmail Порты
SMTP
Ошибки SMTP
Javamail с SMTPS / SSL
Gmail SMTP с использованием SSL
Javamail для Hotmail
SSL — Android
STARTTTLS
Javamail от Websphere
Отправка Gmail
Сертификат ошибки SSL
Поддержка
IBM Поддержка
IBM Поддержка IBM
Javamail с TLS в AIX