【发布时间】:2011-10-09 11:03:16
【问题描述】:
我正在从我的 Java 应用程序向 Gmail 帐户发送邮件。我使用了 Java Mail API,它运行良好。但是是否可以不使用 java 中的邮件 API 来发送电子邮件?
我的意思是使用套接字:
public class Main {
public static void main(String[] args) throws Exception {
String host = "smtp.gmail.com";
int port = 465;
String from = "sh2rpzain@gmail.com";
String toAddr = "sharpzian@gmail.com";
Socket servSocket = new Socket(host, port);
DataOutputStream os = new DataOutputStream(servSocket.getOutputStream());
DataInputStream is = new DataInputStream(servSocket.getInputStream());
if (servSocket != null && os != null && is != null) {
os.writeBytes("HELO\r\n");
os.writeBytes("MAIL From:" + from + " \r\n");
os.writeBytes("RCPT To:" + toAddr + "\r\n");
os.writeBytes("DATA\r\n");
os.writeBytes("X-Mailer: Java\r\n");
os.writeBytes("DATE: " + DateFormat.getDateInstance(DateFormat.FULL,
Locale.US).format(new Date()) + "\r\n");
os.writeBytes("From:" + from + "\r\n");
os.writeBytes("To:" + toAddr + "\r\n");
}
os.writeBytes("Subject:\r\n");
os.writeBytes("body\r\n");
os.writeBytes("\r\n.\r\n");
os.writeBytes("QUIT\r\n");
String responseline;
while ((responseline = is.readUTF()) != null) {
if (responseline.indexOf("Ok") != -1)
break;
}
}
}
但它不工作,它不发送邮件。谁能告诉我可能是什么问题?
【问题讨论】:
-
最后尝试关闭套接字,我前段时间遇到过这个问题。
-
它没有显示任何错误但邮件没有被转发
-
530 5.7.0 必须先发出 STARTTLS 命令。 ei16sm26532474wbb.21
-
请尝试通过此处的答案解决问题,而不是立即添加另一个问题。
标签: java http sockets smtp gmail