遇到一個(gè)不知道如何解決的問(wèn)題。我寫(xiě)的一個(gè)發(fā)送郵件的程序,單元測(cè)試通過(guò)了,接收方能正常收到發(fā)送的郵件,可是我在頁(yè)面調(diào)用的時(shí)候,接收方只是收到郵件,但是主題和正文都是空的。說(shuō)明一下,我在服務(wù)方法那加了斷點(diǎn),查看到值已經(jīng)傳過(guò)去了,也設(shè)進(jìn)Message了。下面是我的代碼。
public void sendMail(String[] mailDetail) {
username = email.split("@")[0];//email是成員變量,可以把它的值當(dāng)作test@test.com
properties = System.getProperties();
String mailServerName = email.split("@")[1].split("\\.")[0];
setGmailProperties();//暫時(shí)只是讓它以gmail為服務(wù)器
Session session = Session.getDefaultInstance(properties,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(email));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
mailDetail[0]));
message.setSubject(mailDetail[1]);
message.setText(mailDetail[2]);
message.setSentDate(new Date());
Transport.send(message);//在這里我加了斷點(diǎn),查看了所有的變量都有值。
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
System.out.println("郵件發(fā)送成功");
}
private void setGmailProperties() {
properties.setProperty("mail.smtp.host", "smtp.gmail.com");
properties.setProperty("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.socketFactory.fallback", "false");
properties.setProperty("mail.smtp.port", "465");
properties.setProperty("mail.smtp.socketFactory.port", "465");
properties.setProperty("mail.smtp.auth", "true");
}
username = email.split("@")[0];//email是成員變量,可以把它的值當(dāng)作test@test.com
properties = System.getProperties();
String mailServerName = email.split("@")[1].split("\\.")[0];
setGmailProperties();//暫時(shí)只是讓它以gmail為服務(wù)器
Session session = Session.getDefaultInstance(properties,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(email));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
mailDetail[0]));
message.setSubject(mailDetail[1]);
message.setText(mailDetail[2]);
message.setSentDate(new Date());
Transport.send(message);//在這里我加了斷點(diǎn),查看了所有的變量都有值。
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
System.out.println("郵件發(fā)送成功");
}
private void setGmailProperties() {
properties.setProperty("mail.smtp.host", "smtp.gmail.com");
properties.setProperty("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.socketFactory.fallback", "false");
properties.setProperty("mail.smtp.port", "465");
properties.setProperty("mail.smtp.socketFactory.port", "465");
properties.setProperty("mail.smtp.auth", "true");
}