Tôi đang cố gắng viết một lớp người gửi thư đơn giản mà sẽ nhận được một loạt các đối số và sử dụng chúng sẽ gửi email ra bằng cách sử dụng máy chủ Exchange 2010 của chúng tôi. Trong khi xác thực vv dường như làm việc tốt, tôi nhận được ngoại lệ sau khi mã thực sự đang cố gắng gửi email (tôi nghĩ). Tôi đã đảm bảo rằng việc xác thực đang làm việc và tôi nhận được một vận chuyển trở lại từ phiên, nhưng nó vẫn không thành công. Bất cứ ai có thể đổ một số giống như những gì tôi đang làm sai hoặc mất tích? Cảm ơn.JavaMail - javax.mail.MessagingException
Ngoại lệ:
javax.mail.MessagingException: [EOF]
at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1512)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:140)
at com.ri.common.mail.util.MailSender.sendHTMLEmail(MailSender.java:75)
at com.ri.common.mail.util.MailSender.main(MailSender.java:106)
đang liên quan:
import java.util.Properties;
import javax.mail.Authenticator;
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 MailSender
{
public static void sendHTMLEmail(String fromEmailId, String toEmailId, String host, String hostUserName,
String hostPassword, String mailSubject, String mailBody)
{
// Get system properties.
Properties props = System.getProperties();
// Setup mail server
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
final String hostUName = hostUserName;
final String hPassword = hostPassword;
Authenticator authenticator = new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(hostUName, hPassword);
}
};
// Get the default Session object.
Session session = Session.getDefaultInstance(props, authenticator);
try
{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(fromEmailId));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmailId));
// Set Subject: header field
message.setSubject(mailSubject);
// Send the actual HTML message, as big as you like
message.setContent(mailBody, "text/html");
// Send message
Transport.send(message, message.getAllRecipients());
System.out.println("Sent message successfully....");
}
catch(Exception mex)
{
mex.printStackTrace();
}
}
public static void main(String[] args)
{
String to = "[email protected]";
String from = "[email protected]";
String host = "correctHostForExch2010";
String user = "correctUser";
String password = "CorrectPassword";
String subject = "Test Email";
String body = "Hi there. This is a test email!";
MailSender.sendHTMLEmail(from, to, host, user, password, subject, body);
}
}
EDIT: Tôi bật gỡ lỗi và nó nói
MAIL FROM:<[email protected]> 530 5.7.1 Client was not authenticated
DEBUG SMTP: got response code 530, with response: 530 5.7.1 Client was not authenticated.
Tại sao đó sẽ là khi phiên xác thực succeded?
Bạn có thể kích hoạt chế độ gỡ lỗi , để bạn có thể xem ứng dụng của mình đang nói gì với máy chủ SMPT, khi kết thúc cuộc trò chuyện, bạn sẽ thấy thông báo lỗi. – Alex
Xin chào Alex, cảm ơn! Tôi bật gỡ lỗi và nó nói MAIL FROM: <[email protected]> 530 5.7.1 Khách hàng không được xác thực DEBUG SMTP: nhận mã phản hồi 530, với phản hồi: 530 5.7.1 Khách hàng không được xác thực. Tại sao điều đó lại xảy ra khi xác thực phiên được gia tăng? – legendofawesomeness
Tôi vừa thấy rằng đối với một số phiên bản của người dùng Exchange nên có một trong các định dạng sau đây 'user @ domain' hoặc' domain \\ user', nếu nó có thể có bất kỳ trợ giúp nào trong thời gian chờ đợi. – Alex