yahoo (smtp.mail.yahoo.com) 계정의 SMTP를 gmail 계정에 사용하여 전자 메일을 보내려고합니다.javax.mail.MessagingException 및 java.net.SocketException 받기
그러나 다음 예외가 발생합니다.
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2153)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1912)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at Sendmail.postMail(Sendmail.java:40)
at Sendmail.main(Sendmail.java:49)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2131)
... 9 more
BUILD SUCCESSFUL (total time: 2 seconds)
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
코드 :
public class Sendmail {
public void postMail(String recipients[ ], String subject, String message , String from) throws MessagingException {
boolean debug = false;
// Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.mail.yahoo.com");
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Optional : You can also set your custom headers in the Email if you Want
msg.addHeader("MyHeaderName", "myHeaderValue");
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
public static void main(String[] args) {
try{
Sendmail sende = new Sendmail();
String senderemailid [] = {"[email protected]"};
sende.postMail(senderemailid,"Hi","Come to room","[email protected]");
}catch(MessagingException e){
e.printStackTrace();
}
}
}
이 오류를 일으키는 코드 (짧은) 예를 제공하십시오. – musiKk
가장 잘못된 서버를 사용하고있을 가능성이 큽니다. mpandit-mbp : ~ mpandit $ telnet smtp.mail.yahoo.com 25 시도 중 74.6.228.71 ... telnet : 74.6.228.71에 연결 : 연결이 거부되었습니다. 시도 중 98.138.84.55 ... smtp.mail.us.am0.yahoodns.net에 연결됨. 이스케이프 문자는 '^]'입니다. 220 smtp110.mail.ne1.yahoo.com ESMTP help 214 SMTP RFC : http : // tools.ietf.org/html/rfc2821' – lobster1234
지저분한 서식을 쓰는 것에 대해 미안하다. 줄 바꿈을하지 않았다는 것을 깨닫지 못했다. – lobster1234