![](/img/trans.png)
[英]Send Email Without authentication in java using gmail smtp server and javamail
[英]Send email using java without JavaMail
我想编写一个套接字程序来发送 SMTP 电子邮件,而不使用任何 JavaMail API。 我在互联网上找到了代码来做到这一点,但它不能正常工作。 这是程序:
import java.net.*;
import java.io.*;
import java.util.*;
public class SMTPTest
{ public static void main(String[] args)
{ SMTPTest smtp = new SMTPTest();
smtp.sendMail();
}
public void sendMail()
{
try
{
Socket s = new Socket("smtp.gmail.com", 465);
out = new PrintWriter(s.getOutputStream());
in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
String hostName = InetAddress.getLocalHost().getHostName();
System.out.println("hostName = " + hostName);
send(null);
send("HELO " + hostName);
send("MAIL FROM: " + "my email@gmail.com");
send("RCPT TO: " + "my email@gmail.com");
send("DATA");
send("Happy SMTP Programming!!");
send("Happy SMTP Programming!!");
send(".");
send("QUIT");
s.close();
out.close();
in.close();
}
catch(IOException e)
{ e.printStackTrace();
}
}
public void send(String s) throws IOException
{ if (s != null)
{ out.println(s);
out.flush();
}
String line;
if ((line = in.readLine()) != null) //output the response
System.out.println(line);
}
private PrintWriter out;
private BufferedReader in;
}
任何人都可以帮忙吗? 这是错误:
java.net.UnknownHostException: smtp.gmail.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at SMTPTest.sendMail(SMTPTest.java:19)
at SMTPTest.main(SMTPTest.java:12)
使用 SSLSocket 代替 Socket,如下所示:
SSLSocket socket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(InetAddress.getByName("smtp.gmail.com"), 465);
你必须捕捉异常,但你明白了。
您不能使用带有普通 SMTP 的 Google 邮件服务器 - 它们需要 TLS。
不确定这是否有帮助,但我在一些代码示例中看到了这个语句:
System.setProperty("mail.smtp.starttls.enable","true");
Socket s = new Socket(...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.