在使用以下代码发送Notes邮件在客户那边测试时报以下错误 客户用的Notes版本为8.5.2
package com.notes;
import java.util.Date;
import com.logger.Logger;
import lotus.notes.*;
public class NotesMailManager implements Runnable{
private String recipients;
private String dominoServerName;
private String userFilePath;
private String userName;
private String password;
private String result;
public String getRecipients() {
return recipients;
}
public void setRecipients(String recipients) {
this.recipients = recipients;
}
public String getDominoServerName() {
return dominoServerName;
}
public void setDominoServerName(String dominoServerName) {
this.dominoServerName = dominoServerName;
}
public String getUserFilePath() {
return userFilePath;
}
public void setUserFilePath(String userFilePath) {
this.userFilePath = userFilePath;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public void run() {
Session session = null;
Database db = null;
Document doc = null;
Registration reg;
try {
session = Session.newInstance();
reg = session.createRegistration();
reg.switchToID ( getUserName(), getPassword() );
db = session.getDatabase(getDominoServerName(), getUserFilePath());
Logger.writeToLogger("Database title is " + db.getTitle()
+ " and filepath is " + db.getFilePath());
System.out.println("Database title is " + db.getTitle()
+ " and filepath is " + db.getFilePath());
doc = db.createDocument();
doc.replaceItemValue("Subject", "Notes邮件测试 "+new Date());
doc.replaceItemValue("Body", "邮件测试成功 "+new Date());
doc.save();
doc.send(getRecipients());
System.out.println("邮件发送成功!");
setResult("邮件发送成功!");
} catch (NotesException e) {
e.printStackTrace();
Logger.writeToLogger("NotesException"+e.toString()+" "+new Date());
String str[] = e.toString().split(":");
setResult(str[1]);
System.out.println("toString----->"+str[1]);
}catch(Exception e){
e.printStackTrace();
Logger.writeToLogger("Exception"+e.getMessage()+" "+new Date());
}finally{
try {
if(doc!=null){
doc.recycle();
doc = null;
}
if(db!=null){
db.recycle();
db = null;
}
if(session!=null){
// session.recycle();
session = null;
}
} catch (NotesException e) {
e.printStackTrace();
System.out.println("finallyToString----->"+e.toString());
}
}
}
}
但是在使用一下的代码是却报空指针异常
package com.notes;
import java.util.Date;
import com.logger.Logger;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.NotesFactory;
import lotus.domino.Session;
public class NotesMailManager implements Runnable{
private String recipients;
private String dominoServerName;
private String userFilePath;
private String userName;
private String password;
private String result;
public String getRecipients() {
return recipients;
}
public void setRecipients(String recipients) {
this.recipients = recipients;
}
public String getDominoServerName() {
return dominoServerName;
}
public void setDominoServerName(String dominoServerName) {
this.dominoServerName = dominoServerName;
}
public String getUserFilePath() {
return userFilePath;
}
public void setUserFilePath(String userFilePath) {
this.userFilePath = userFilePath;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public void run() {
Session session = null;
Database db = null;
Document doc = null;
//Registration reg;
try {
session = NotesFactory.createSession("",(String)null,getPassword());
db = session.getDatabase(getDominoServerName(), getUserFilePath());
// System.out.println("NotesVersion is :"+session.getNotesVersion());
// Logger.writeToLogger("NotesVersion is :"+session.getNotesVersion());
//session = Session.newInstance();
// Logger.writeToLogger(session.getPlatform());
// System.out.println(session.getPlatform());
//reg = session.createRegistration();
//reg.switchToID ( getUserName(), getPassword() );
//db = session.getDatabase(getDominoServerName(), getUserFilePath());
Logger.writeToLogger("Database title is " + db.getTitle()
+ " and filepath is " + db.getFilePath());
System.out.println("Database title is " + db.getTitle()
+ " and filepath is " + db.getFilePath());
doc = db.createDocument();
doc.replaceItemValue("Subject", "Notes邮件测试 "+new Date());
doc.replaceItemValue("Body", "邮件测试成功 "+new Date());
doc.save();
doc.send(getRecipients());
System.out.println("邮件发送成功!");
setResult("邮件发送成功!");
} catch (NotesException e) {
e.printStackTrace();
Logger.writeToLogger("NotesException"+e.toString()+" "+new Date());
String str[] = e.toString().split(":");
if(str[1].equals("Database %1 has not been opened yet")){
setResult("无法打开用户数据库,请检查相应的设置!");
}
setResult(str[1]);
System.out.println("toString----->"+str[1]);
}catch(Exception e){
e.printStackTrace();
Logger.writeToLogger("Exception"+e.getMessage()+" "+new Date());
}finally{
try {
if(doc!=null){
doc.recycle();
doc = null;
}
if(db!=null){
db.recycle();
db = null;
}
if(session!=null){
// session.recycle();
session = null;
}
} catch (NotesException e) {
e.printStackTrace();
System.out.println("finallyToString----->"+e.toString());
}
}
}
}