-2
我有一個web應用程序,我正在向用戶發送郵件。以下是我的代碼。如何在春天發送java郵件mvc
String host = "smtp.gmail.com";
String pwd = "123";
String from = "[email protected]";
String to = "[email protected]";
String subject = "Test";
String messageText = "This is demo mail";
int port = 587;
boolean sessionDebug = false;
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.required", "true");
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
InternetAddress[] add = {new InternetAddress(to)};
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setRecipients(Message.RecipientType.TO, add);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText); //Actual msg
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, from, pwd);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
此代碼在本地執行,但在服務器域上失敗。我搜索了很多,但是這個解決方案對我來說並不合適。
我嘗試了很多像transport.connect(host, from, pwd);
與transport.connect(host, 587, from, pwd);
or 465
和String host="smtp.gmail.com";
與靜態域IP。但仍然無法正常工作。
任何人都可以找出我失蹤的東西..?
*不工作*表示您收到錯誤信息?如果是這樣,請添加堆棧跟蹤 – Jens
代碼中沒有錯誤。該代碼在當地很有用。但在服務器上失敗。 – Ashish
它看起來像一個DNS /路由/防火牆問題,確保你可以'ping'谷歌郵件服務器和'telnet stmp.gmail.com'也可以從你的服務器上運行。 –