Tôi có chương trình java (Sao chép từ google) để gửi email bằng cách sử dụng office365 SMTP, nó hoạt động tốt như một chương trình java đứng nhưng khi tôi triển khai chương trình java này dưới dạng tệp jar trong web -inf/lib của một ứng dụng web và gọi phương thức từ jsp nó là ném lỗi dưới đây: javax.mail.SendFailedException: Gửi không thành công; ngoại lệ lồng nhau là: javax.mail.MessagingException: 530 5.7.57 SMTP; Khách hàng không được xác thực để gửi thư ẩn danh trong MAIL FROMjavax.mail.MessagingException: 530 5.7.57 SMTP; Khách hàng đã không được xác thực để gửi thư nặc danh trong MAIL FROM
Ai đó có thể chia sẻ quan điểm của họ về vấn đề này.
Mã java:
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;
import org.apache.log4j.Logger;
public class SendEmailUsingSMTP {
public static boolean sendEmail(String toAddress, String fromAddress, String userName, String userPassword,String smtpHost, String portNumber, String emailSubject,String emailBody) {
// Recipient's email ID needs to be mentioned.
Logger log = Logger.getLogger(SendEmailUsingSMTP.class);
log.info("toAddress : "+toAddress);
log.info("fromAddress : "+fromAddress);
log.info("userName : "+userName);
log.info("userPassword : "+userPassword);
log.info("smtpHost : "+smtpHost);
log.info("portNumber : "+portNumber);
log.info("emailSubject : "+emailSubject);
log.info("emailBody : "+emailBody);
String to = toAddress;
// Sender's email ID needs to be mentioned
String from = fromAddress;//change accordingly
final String username = userName;//change accordingly
final String password = userPassword;//change accordingly
// Assuming you are sending email through relay.jangosmtp.net
String host = smtpHost;
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.port", portNumber);
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", portNumber);
// Get the Session object.
SMTPAuthenticator authenticator = new SMTPAuthenticator(username, password);
props.put("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
Session session = Session.getInstance(props, authenticator);
try {
// Create a default MimeMessage object.
Message message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
// Set Subject: header field
message.setSubject(emailSubject);
// Now set the actual message
message.setText(emailBody);
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
return true;
}
}
SmtpHost, portNumber Tôi đang sử dụng String smtpHost = "smtp.office365.com"; \t Chuỗi cổngNumber = "587"; – Jay
Tôi đang đối mặt với chính xác cùng một sử dụng ... –