我正在用Apache Commons電子郵件API嘗試下列代碼,並且它在上下文中引發錯誤。任何幫助?javax.naming.NoInitialContextException Apache Commons api
import java.util.Properties;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class email {
/**
* @param args
* @throws EmailException
*/
public static void main(String[] args) throws EmailException {
// TODO Auto-generated method stub
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]", "password");
}
});
SimpleEmail se = new SimpleEmail();
se.addTo("[email protected]");
se.setFrom("[email protected]");
se.setSubject("Test email");
se.setMsg("Hi there");
se.send();
}
}
它引發以下錯誤。我應該在哪裏設置什麼來克服這個問題?在這方面的任何幫助?
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at javax.xml.registry.samples.SimpleClient.doit(Unknown Source)
at javax.xml.registry.samples.SimpleClient.main(Unknown Source)
請問你'doit'方法是什麼樣子? 'javax.xml.registry.samples.SimpleClient'和你發佈的代碼是一樣的嗎? – longhua
我擁有的就是這個代碼嗎? AM我錯過了什麼?什麼是doit方法?你能幫我嗎? – user1411601
我想你正在使用錯誤的類?你如何運行你的Java類?你應該使用'email'類,而不是'javax.xml.registry.samples.SimpleClient'。請檢查您的堆棧跟蹤。 – longhua