谁能给一个带smtp验证的javamail发邮件的例子

zychen209 2005-05-09 10:44:31
谁能给一个带smtp验证的javamail发邮件的例子,我是用的smtp.163.com。
网上搜索的例子还没找到能运行通过的。
...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zychen209 2005-05-09
  • 打赏
  • 举报
回复
不好意思;
错误信息是
javax.mail.MessagingException: Could not connect to SMTP host: smtp.tom.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1008)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:197)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at testcon.sendMail.main(sendMail.java:46)
Exception in thread "main"


上面的写错了
zychen209 2005-05-09
  • 打赏
  • 举报
回复
没有注释倒没有什么,只是我一直无法通过一个发简单email的测试
两种验证用户名密码的方法都用过了,无法测试通过

代码如下

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;


public class sendMail
{
public static void main(String args[]) throws Exception
{

String host = "smtp.tom.com";
String from = "kotaro2005@tom.com";
String to = "kotaro2005@163.com";
String username = "kotaro2005";
String password = "******";

// Get system properties
// Properties props = System.getProperties();
Properties props = new Properties();
//Properties props = System.getProperties();

// Setup mail server
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
//SmtpAuth sa=new SmtpAuth();
//sa.getuserinfo("kotaro2005","*******");
// Get session
Session session = Session.getInstance(props,null);

// watch the mail commands go by to the mail server
session.setDebug(true);

// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
message.setSubject("Hello JavaMail");
message.setText("Welcome to JavaMail");

// Send message
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
}


错误信息如下:
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect

at javax.mail.Transport.send0(Transport.java:218)

at javax.mail.Transport.send(Transport.java:80)

at testcon.ConTest.main(ConTest.java:98)

javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1008)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:197)

at javax.mail.Service.connect(Service.java:255)Sending failed;
nested exception is:
class javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect



at javax.mail.Service.connect(Service.java:134)

at javax.mail.Service.connect(Service.java:86)

at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:104)

at javax.mail.Transport.send0(Transport.java:162)

at javax.mail.Transport.send(Transport.java:80)

at testcon.ConTest.main(ConTest.java:98)

dgyujingjun 2005-05-09
  • 打赏
  • 举报
回复
没有什么注释,不好意思了
dgyujingjun 2005-05-09
  • 打赏
  • 举报
回复
package com.cn.mail.util;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.security.spec.X509EncodedKeySpec;
public class SendMail {
private MimeMessage mimeMsg; //MIME mail object

private Session session;
private Properties props; //system property
private boolean needAuth = false;

private String username = "";
private String password = "";

private Multipart mp; //Multipart ,存放信件 title\内容\附件等

public SendMail(String smtp) {
setSmtpHost(smtp);
createMimeMessage();
}

/**
* @param hostName String
*/
public void setSmtpHost(String hostName) {
System.out.println("sytem属性:mail.smtp.host = " + hostName);
if (props == null) {
props = System.getProperties();
}
props.put("mail.smtp.host", hostName); //SMTP主机
}

/**
* @return boolean
*/
public boolean createMimeMessage() {
try {
System.out.println("session begin-------");
session = Session.getInstance(props, null);
}
catch (Exception e) {
System.err.println("Session.getInstance faild!" + e);
return false;
}

System.out.println("MimeMessage begin-------!");
try {
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();

return true;
}
catch (Exception e) {
System.err.println("MimeMessage fiald!" + e);
return false;
}
}

/**
* @param need boolean
*/
public void setNeedAuth(boolean need) {
System.out.println(":mail.smtp.auth = " + need);
if (props == null) {
props = System.getProperties();

}
if (need) {
props.put("mail.smtp.auth", "true");
}
else {
props.put("mail.smtp.auth", "false");
}
}

/**
* @param name String
* @param pass String
*/
public void setNamePass(String name, String pass) {
username = name;
password = pass;
}

/**
* @param mailSubject String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
System.out.println("set title begin-----!");
try {
if (!mailSubject.equals("") && mailSubject != null) {
mimeMsg.setSubject(mailSubject);
}
return true;
}
catch (Exception e) {
System.err.println("set title faild!");
return false;
}
}

/**
* @param name String
* @param pass String
*/
public boolean addFileAffix(String filename) {

System.out.println("增加附件----:" + filename);
if (filename.equals("") || filename == null) {
return false;
}
String file[];
file = filename.split(";");
System.err.println("========" + file.length);
try {
for (int i = 0; i < file.length; i++) {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(file[i]);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
mp.addBodyPart(bp);
}
return true;
}
catch (Exception e) {
System.err.println("增加附件:" + filename + "--faild!" + e);
return false;
}

}

/**
* @param name String
* @param pass String
*/
public boolean setFrom(String from) {
System.out.println("set Mail From!");
try {
mimeMsg.setFrom(new InternetAddress(from));
return true;
}
catch (Exception e) {
return false;
}
}

/**
* @param name String
* @param pass String
*/
public boolean setTo(String to) {
if (to == null) {
return false;
}

try {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
return true;
}
catch (Exception e) {
return false;
}

}

/**
* @param name String
* @param pass String
*/
public boolean setCopyTo(String copyto) {
if (copyto.equals("") || copyto == null) {
return false;
}
try {
String copy[];
int i = 0;
copy = copyto.split(";");
for(i=0; i<copy.length; i++){
mimeMsg.setRecipients(Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copy[i]));
}
return true;
}
catch (Exception e) {
return false;
}
}

/**
* @param mailBody String
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>" +
mailBody, "text/html;charset=GB2312");
mp.addBodyPart(bp);

return true;
}
catch (Exception e) {
System.err.println("Set content Fiald!" + e);
return false;
}
}

/**
*送html
* @param htmlPath
* @return
*/
public boolean setHtml(String htmlPath) {
try {
if (!htmlPath.equals("") && htmlPath != null) {
BodyPart mbp = new MimeBodyPart();
DataSource ds = new FileDataSource(htmlPath);
mbp.setDataHandler(new DataHandler(ds));
mbp.setHeader("Content-ID", "meme");
mp.addBodyPart(mbp);
}
return true;
}
catch (Exception e) {
System.err.println("set html Fiald!" + e);
return false;
}
}

/**
* @param name String
* @param pass String
*/
public boolean sendout() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在 Send Mail ....");

Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect( (String) props.get("mail.smtp.host"), username,
password);
transport.sendMessage(mimeMsg,
mimeMsg.getRecipients(Message.RecipientType.TO));
transport.sendMessage(mimeMsg,
mimeMsg.getRecipients(Message.RecipientType.CC));
System.out.println("Mail Send 成功!");
transport.close();

return true;
}
catch (Exception e) {
System.err.println("Mail Send Fiald!" + e);
return false;
}
}

}

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧