下面是我的代碼,它不會給我提供任何錯誤,但是我的帳戶中也沒有收到電子郵件。我瀏覽了所有關於此事的帖子,並相應地修改了我的代碼。我對這件事情並不陌生,所以這個問題似乎很愚蠢,但仍然歡迎任何方向/建議。此外,該servlet將在谷歌應用程序引擎上運行。我使用我的Gmail帳戶用戶名和密碼而不是[email protected]
和密碼。謝謝。使用JavaMail API通過servlet發送的電子郵件沒有通過
import java.io.IOException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserFeedback extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse res)
{
sendFeedback(req, res);
}
private void sendFeedback(HttpServletRequest req, HttpServletResponse res)
{
String from = null, sub = null, msg = null;
String host = "smtp.gmail.com", username = "[email protected]", password = "password";
Session session = null;
MimeMessage email = null;
Transport transport = null;
sub = req.getParameter("subject");
from = req.getParameter("sender");
msg = req.getParameter("message");
msg = "From: " + from + "\n" + msg;
Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", host);
props.put("mail.smtp.user", username);
props.put("mail.smtp.password", password);
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
session = Session.getDefaultInstance(props, new javax.mail.Authenticator(){ protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "password");}});
session.setDebug(true);
email = new MimeMessage(session);
try
{
email.setSender(new InternetAddress(username));
email.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
email.setSubject(sub);
email.setContent(msg, "text/plain");
}
catch (AddressException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (MessagingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
Transport.send(email);
}
catch (NoSuchProviderException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (MessagingException e)
{
e.printStackTrace();
}
}
}
你檢查過垃圾文件夾嗎? – 2012-03-05 08:46:06
是的,我沒有檢查我的垃圾郵件/垃圾文件夾;郵件也不在那裏。 – 2012-03-05 08:47:28
哦,是的,有一件事是我試圖將郵件發送到同一個帳戶,因爲我正在測試它,但我不認爲這會導致任何問題。雖然我不確定。 – 2012-03-05 09:07:43