内容有点长,我会叙述清楚,请知道了解的人士帮助解答.
我要利用java mail写一个应用小软件,先从接发邮件作起,下面这个最简单的程序用以发送邮件,
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;public class SendMailDemo
{
public static void main(String args[])
{
int argc = args.length;
if (argc!=2)
{
System.out.println(" wrong syntax");
return;
}
String host = args[0];
String to = args[1];
Properties prop = new Properties();
prop.put("mail.transport.default","smtp");
prop.put("mail.smtp.host","host");
try
{
Session mySession = Session.getInstance(prop,null);
Message message = new MimeMessage(mySession);
message.setSubject ("Test Message");
message.setContent("This is a test message...","text/plain");
InternetAddress toAddr = new InternetAddress(to);
message.setRecipient(Message.RecipientType.TO,toAddr);
InternetAddress fromAddr = new InternetAddress("[email protected]","morningq");
message.setFrom(fromAddr);
System.out.println("senting message!!");
Transport.send(message);
System.out.println("Message Sent");
} catch (AddressException ae)
{ System.err.println("Invalid address"+ae);
}
catch (MessagingException me)
{
System.err.println("Messaging failure:"+me);
} catch(Exception ex)
{
System.err.println("Failure"+ex);
}
}
}编译通过.按理说执行程序的命令行命令是这样的
java SendMailDemo mystmpserver myemail@mydomain但这个stmp server总提示host不存在.我知道应该是不能简单的写smtp.tom.com.然后我下载了ArGoSoft Mail Server Freeware 和 Fast Mail Server ,想将自己的机器设成stmp server ,但这两款英文的软件我不太会用.
最后我的问题是:
1.那个程序执行的时候 这样写命令行对不对:
java SendMailDemo smtp.tom.com [email protected] ??
这样写又对不对
java SendMailDemo 222.29.53.** [email protected]
一个是本机ip,一个是我的邮箱
2.如果按后者写,是不是非要用相关邮件服务器软件将自己的机器变成smtp服务器?用我下的那软件就行吗??谢谢大家的解答
我要利用java mail写一个应用小软件,先从接发邮件作起,下面这个最简单的程序用以发送邮件,
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;public class SendMailDemo
{
public static void main(String args[])
{
int argc = args.length;
if (argc!=2)
{
System.out.println(" wrong syntax");
return;
}
String host = args[0];
String to = args[1];
Properties prop = new Properties();
prop.put("mail.transport.default","smtp");
prop.put("mail.smtp.host","host");
try
{
Session mySession = Session.getInstance(prop,null);
Message message = new MimeMessage(mySession);
message.setSubject ("Test Message");
message.setContent("This is a test message...","text/plain");
InternetAddress toAddr = new InternetAddress(to);
message.setRecipient(Message.RecipientType.TO,toAddr);
InternetAddress fromAddr = new InternetAddress("[email protected]","morningq");
message.setFrom(fromAddr);
System.out.println("senting message!!");
Transport.send(message);
System.out.println("Message Sent");
} catch (AddressException ae)
{ System.err.println("Invalid address"+ae);
}
catch (MessagingException me)
{
System.err.println("Messaging failure:"+me);
} catch(Exception ex)
{
System.err.println("Failure"+ex);
}
}
}编译通过.按理说执行程序的命令行命令是这样的
java SendMailDemo mystmpserver myemail@mydomain但这个stmp server总提示host不存在.我知道应该是不能简单的写smtp.tom.com.然后我下载了ArGoSoft Mail Server Freeware 和 Fast Mail Server ,想将自己的机器设成stmp server ,但这两款英文的软件我不太会用.
最后我的问题是:
1.那个程序执行的时候 这样写命令行对不对:
java SendMailDemo smtp.tom.com [email protected] ??
这样写又对不对
java SendMailDemo 222.29.53.** [email protected]
一个是本机ip,一个是我的邮箱
2.如果按后者写,是不是非要用相关邮件服务器软件将自己的机器变成smtp服务器?用我下的那软件就行吗??谢谢大家的解答
解决方案 »
- 怎么给一个动态的数组赋值啊?
- Dom4j读取XML出现空指针异常,给分不吝啬,在线等~~
- 怎么得到鼠标位置?
- 急问!为什么我的java程序运行这么耗内存?
- 上次的问题已经结帖,再来一个挑战性的问题,如何快速的过滤掉重复的对象
- 请教计算100以内质数和那里错了?(在线等待)
- 尊敬的JAVA朋友:能介绍一下好的论坛网站吗?
- 如何判断一个String的值是否是""、" "、" "、" "、......
- 一个关于JBuilder通过JDBC连接SQL SERVER的问题
- 关于手写输入
- JTabel.getCellEditor(int row, int col)中为什么参数row无用?
- 输入一个字符串 删除串中所有相同的字符
// 发送简单邮件
public static boolean sendSimpleMail(){
try {
Properties props = new Properties(); props.put("mail.smtp.host", smtpServer); Session sendMailSession;
if ("true".equals(smtpAuth)) { //smtp服务器需要验证,用MyAuthertiactor来创建mail session
// props.put("mail.smtp.auth", smtpAuth);
MyAuthenticator myauth = new MyAuthenticator(smtpUser, smtpPassword);
sendMailSession = Session.getInstance(props, myauth);
}
else {
sendMailSession = Session.getInstance(props);
} Message msg = new MimeMessage(sendMailSession); msg.setFrom(new InternetAddress(strMailFrom, strMailFromName)); // 设置发件邮箱、发件人姓名
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(strMailTo, strMailToName)); // 设置收件邮箱、收件人姓名
// msg.setRecipient(Message.RecipientType.TO, new InternetAddress(strMailTo)); // 设置收件邮箱
// msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(strMailCC, false)); // 设置抄送邮箱
// msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(strMailBCC, false)); // 设置暗送邮箱 msg.setSubject(strMailSubject); // 设置邮件主题
// -- 设置其他一些标头信息--
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
msg.setText(strMailBody); // 设置邮件主体
msg.saveChanges();// Transport transport;
// transport = sendMailSession.getTransport("smtp");
// transport.send(msg, msg.getAllRecipients());
// transport.close();
javax.mail.Transport.send(msg); return true;
}
catch (Exception mailEx) {
System.err.println("Send Mail Error:" + mailEx.getMessage());
return false;
}
}
下一个james邮件服务器 结合一下自己的例子测试一下
commons-email.jar有时间的话了解下也是不错地
但是要用自己的ip做smtp服务器,非要用james吗?我用的易邮邮件服务器.怎么老说Unknow SMTP host呢???