开发邮件系统的疑问?急!!
我利用MDaemon软件构建了一个邮件服务器
设ip为219.196.78.91
两个用户为:aniu和ronghui
邮件主机名为:@SAW.com。
java代码如下:
package com.jspdev.ch5;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class Email1{
public static void main(String[] argv){
new Email1(argv);
}
public Email1(String[] argv){
String to = null;
String from = null;
String subject = null;
String cc = null;
String bcc = null;
String mailhost = null;
String content = null;
MimeMessage mimeMsg= null;
Session session = null;
try{
mailhost = "218.196.78.91";
from = "ronghui@SAW.com";
to = "aniu@SAW.com";
subject = "hello";
content = "the first javamail";
Properties props = System.getProperties();
props.put("mail.smtp.host",mailhost);
session= Session.getDefaultInstance(props,null);
mimeMsg.setFrom(new InternetAddress(from));
if(to!=null){
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
}
if(cc!=null){
mimeMsg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc));
}
if(bcc!=null){
mimeMsg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc));
}
mimeMsg.setSubject(subject,"GBK");
mimeMsg.setText( content,"GBK");
mimeMsg.setSentDate(new Date());
Transport.send(mimeMsg );
System.out.println("email send!");
}
catch(Exception e){
e.printStackTrace();
}
}
}
编译能够通过,但是运行时出现如下错误:
java.lang.NullPointerException
at com.jspdev.ch5.Email1.<init><Email1.java:34>
at com.jspdev.ch5.Email1.main<Email1.java:11>
请大虾们指点,毕业设计要用,急啊!!
问题点数:40、回复次数:8Top
1 楼Aniu1234()回复于 2005-05-12 23:45:37 得分 0
我的毕业设计得用jsp做,我是想先用java执行一下,如果可以的话就好办了!
自己先顶一个!!Top
2 楼ipv(宁静致远)回复于 2005-05-13 09:03:25 得分 25
mimeMsg.setFrom(new InternetAddress(from));
你上面MimeMessage mimeMsg= null;
所以空指针
如果只是发的话可以
我可以发给你一个Top
3 楼ipv(宁静致远)回复于 2005-05-13 09:05:11 得分 0
package com.ipv.mail;
/**
* Title: 发送简单邮件的类,不发送附件
* Description: send mail using smtp
* Copyright: Copyright (c) 2002
* Company: ces
* @author wz
* @version 1.0
*/
import java.util.*;
import javax.mail.*;
import java.io.*;
import javax.mail.internet.*;
public class SendMail {
private String m_strFrom; //从谁那边发出
private String m_strTo; //发达哪个邮箱
private String m_strSmtpHost; //从哪个SMTP服务器发出
private String m_strUser; //从哪个用户下发邮件
private String m_strPassword; //那个用户的密码是什么
private String m_strSubject; //邮件主题
private String m_strContent; //邮件内容
public SendMail() {
this.m_strFrom = "";
this.m_strTo = "";
this.m_strSmtpHost = "";
this.m_strUser = "";
this.m_strPassword = "";
this.m_strSubject = "";
this.m_strContent = "";
}
public void setFrom(String strFrom) {
this.m_strFrom = strFrom;
}
public void setTo(String strTo) {
this.m_strTo = strTo;
}
public void setSmtpHost(String strSmtpHost) {
this.m_strSmtpHost = strSmtpHost;
}
public void setUser(String strUser) {
this.m_strUser = strUser;
}
public void setPassword(String strPassword) {
this.m_strPassword = strPassword;
}
public void setSubject(String strSubject) {
this.m_strSubject = strSubject;
}
public void setContent(String strContent) {
this.m_strContent = strContent;
}
//发送邮件
public void send() throws MessagingException {
Properties props = new Properties();
props.put("mail.smtp.host", m_strSmtpHost);
props.put("mail.smtp.auth", "true");
Session s = Session.getInstance(props);
s.setDebug(false);
MimeMessage message = new MimeMessage(s);
// 给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from = new InternetAddress(m_strFrom);
message.setFrom(from);
InternetAddress to = new InternetAddress(m_strTo);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(m_strSubject);
message.setSentDate(new Date());
// 给消息对象设置内容
BodyPart mdp = new MimeBodyPart(); //新建一个存放信件内容的BodyPart对象
mdp.setContent(m_strContent, "text/html;charset=gb2312"); //给BodyPart对象设置内容和格式/编码方式
Multipart mm = new MimeMultipart(); //新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
mm.addBodyPart(mdp); //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
message.setContent(mm); //把mm作为消息对象的内容
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect(m_strSmtpHost, m_strUser, m_strPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
public boolean sendMail(String strFrom, String strTo, String strSubject,
String strContext) {
String strSMTPHOST = "";
String strUSER = "";
String strPASSWORD = "";
String strSENDFROM = "";
InputStream is = getClass().getResourceAsStream("db.properties");
Properties dbProps = new Properties();
try {
dbProps.load(is);
strSMTPHOST = dbProps.getProperty("smtphost", "");
strUSER = dbProps.getProperty("user", "");
strPASSWORD = dbProps.getProperty("password", "");
strSENDFROM = dbProps.getProperty("strfrom", "");
}
catch (Exception e) {
}
if (strFrom != null && !strFrom.trim().equals("")) {
strSENDFROM = strFrom;
}
this.setSmtpHost(strSMTPHOST);
this.setUser(strUSER);
this.setPassword(strPASSWORD);
this.setFrom(strSENDFROM);
this.setTo(strTo);
this.setSubject(strSubject);
this.setContent(strContext);
try {
this.send();
}
catch (Exception e) {
return false;
}
return true;
}
public static void main(String[] args) {
SendMail sendMail = new SendMail();
boolean aa = sendMail.sendMail("", "tt@dsf.com", "sdfs", "sdfsdf");
System.out.println(aa);
}
}
Top
4 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:23:54 得分 15
发送正文时仅setText是不够的,不然发出的会没有正文
MimeBodyPart bodypart=new MimeBodyPart();
bodypart.setText( content,"gbk");
mimemsg.addBodyPart(bodypart);
仅看到这一个;再找找.......
Top
5 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:25:48 得分 0
还有在开始的低级错误
public static void main(String[] argv){
是 Strings[] args 吧 是sssssssssssssss,不是vvvvvvvvvvvvvvvvTop
6 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:26:49 得分 0
o ,不好意思,看着急了,走眼了,呵呵,Top
7 楼Aniu1234()回复于 2005-05-13 16:44:54 得分 0
呵呵,谢谢大家
做毕业设计不能上网,郁闷!
只能每天来看几次,谢谢大家,我试试改改看Top
8 楼Aniu1234()回复于 2005-05-14 01:17:43 得分 0
还是不行啊!请问大家在做邮件系统的时候环境是如何搭的!具体的开发过程如何介绍一下。
qq:13283955
邮件:tommy_300@163.com
Top




