我的节目如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Cygnet
*/
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
private String from;
private String to;
private String subject;
private String text;
public SendMail(String from, String to, String subject, String text){
this.from = from;
this.to = to;
this.subject = subject;
this.text = text;
System.out.println("your massege running here");
}
public void send(){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.cygnet3.com");
props.put("mail.smtp.port", "8383");
Session mailSession = Session.getDefaultInstance(props);
Message simpleMessage = new MimeMessage(mailSession);
InternetAddress fromAddress = null;
InternetAddress toAddress = null;
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
String from = "sender@example.com";
String to = "recipient@example.com";
String subject = "Hi server problem";
String message = "I could not find anything in the coding";
SendMail sendMail = new SendMail(from, to, subject, message);
sendMail.send();
System.out.println("Your massege is successfully sent");
}
}
我收到以下异常:
run-main:
your massege running here
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at SendMail.send(SendMail.java:58)
Your massege is successfully sent
at SendMail.main(SendMail.java:71)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
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:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
... 9 more
BUILD SUCCESSFUL (total time: 2 minutes 15 seconds)
请帮帮我,我在做什么错?我不想做用户名和密码验证,我的端口号和用户ID工作正常。
答案 0 :(得分:1)
“连接重置”意味着意外关闭了您尝试建立的连接。也许您的SMTP服务器期望安全连接(SSL或TLS)。您可以尝试使用telnet或netcat连接到smtp.cygnet3.com:8383,看看你得到了什么。如果你有openssl,你可以检查它是否是openssl s_client -connect smtp.cygnet3.com:8383
之类的安全端口。
编辑:正如Brian指出的那样,端口8383是一个HTTP服务器。它看起来像邮件服务器的Web界面。请尝试标准端口25(不安全)或587(安全)。
答案 1 :(得分:1)
该端口上的主机上没有运行SMTP服务器。您需要一个有效的SMTP服务器。
看起来在该端口上运行了一个Web服务器:
broach@roach-VirtualBox:~$ telnet smtp.cygnet3.com 8383
Trying 66.7.149.27...
Connected to cygnet3.com.
Escape character is '^]'.
HELO?
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 05 Sep 2011 05:35:35 GMT
Connection: close
Content-Length: 326
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Verb</h2>
<hr><p>HTTP Error 400. The request verb is invalid.</p>
</BODY></HTML>
Connection closed by foreign host.