关于JAVAMAIL问题,提示说找不到SMTP服务器,可能是我的MAILSERVER错误,下面有注释,请帮忙解决,给分!

snowman_pc 2004-10-18 10:34:44
public boolean emitMail(HttpServletRequest request, String _content)
{
boolean isSucc = true;
InternetAddress[] address = null;
try
{
request.setCharacterEncoding("GB2312");
}
catch(UnsupportedEncodingException uex)
{
isSucc = false;
System.out.println("request.setCharacterEncoding(GB2312) error");
}
//这下面几句是否有错误
String mailServer = "ecd.163.com";
String from = "jb_china2008@163.com";
String to = "jb_china2004@163.com";
String title = "订报";
String content = _content;
boolean sessionDebug = false;
try
{
java.util.Properties props = System.getProperties();
props.put("mail.host", mailServer);
props.put("mail.transport.protocol", "smtp");
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,

null);
mailSession.setDebug(sessionDebug);
javax.mail.Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
address = InternetAddress.parse(to, false);
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(title);
msg.setSentDate(new Date());
msg.setText(content);
Transport.send(msg);
System.out.println("邮件已顺利传送");
}
catch(MessagingException e)
{
isSucc = false;
e.printStackTrace();
}
return isSucc;
}
...全文
227 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowman_pc 2004-10-26
  • 打赏
  • 举报
回复
还是不太好用!怎么都不一样呀!
apple21 2004-10-19
  • 打赏
  • 举报
回复
学习
leonwu1981 2004-10-19
  • 打赏
  • 举报
回复
String mailServer = "ecd.163.com";
这里是不是错了?我在21cn上的邮箱是smtp.21cn.com
我的:
String username,password,host;
host = "smtp.21cn.com";
……………………
Properties props = System.getProperties();
Authenticator auth = new PasswordAuthentication(username, password);
Session session = Session.getDefaultInstance(props, auth);
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
session.setDebug(false);
上海老猫 2004-10-19
  • 打赏
  • 举报
回复
props.put("mail.smtp.host", hostMail); //smtp主机名。163.com
props.put("mail.smtp.user",fromMail); //发送方邮件地址。jb_china2008
props.put("mail.smtp.password",passwordMail); //邮件密码。
shangqiao 2004-10-19
  • 打赏
  • 举报
回复
有错误,你的Properties值错了:
protected void send() throws Exception {
//发送邮件使用的服务器
String hostName = mailBox.getHostName();
//连接服务器的用户名
String userName = mailBox.getUserName();
//连接服务器的用户密码
String password = mailBox.getPassword();

//Properties env = System.getProperties();
Properties env=new Properties();
//存储发送邮件服务器的信息
env.put("mail.smtp.host", hostName);
//同时通过验证
env.put("mail.smtp.auth", "true");

//得到登陆器
AbstractAuthenticator authenticator = MailElementFactory.getInstance()
.createAuthenticator();
//根据属性新建一个邮件会话
Session session = Session.getDefaultInstance(env);
session.setDebug(false);

//创建一个消息
MimeMessage message = new MimeMessage(session);
//设定该消息的信息

//设定发件人
UserEMailAddress fromAddress = mail.getFromUser();
if (fromAddress != null) {
String fromUser = fromAddress.getUserName();
String fromEmail = fromAddress.getEmailAddress();
InternetAddress fromInter = new InternetAddress(fromUser, fromEmail);
message.setFrom(fromInter);
} else {
InternetAddress from=new InternetAddress("tx_1981@etang.com");
message.setFrom(from);
}

//设定发送到
Collection toUser = mail.getToUser();
if (toUser != null && toUser.size() > 0) {
Iterator iter = toUser.iterator();
while (iter.hasNext()) {
UserEMailAddress address = (UserEMailAddress) iter.next();
addAddress(message, address, Message.RecipientType.TO);
}
}

//设定抄送到
Collection copyUser = mail.getCopyUser();
if (copyUser != null && copyUser.size() > 0) {
Iterator iter = copyUser.iterator();
while (iter.hasNext()) {
UserEMailAddress address = (UserEMailAddress) iter.next();
addAddress(message, address, Message.RecipientType.CC);
}
}

//密送到
Collection copySecretUser = mail.getCopySecrecyUser();
if (copySecretUser != null && copySecretUser.size() > 0) {
Iterator iter = copySecretUser.iterator();
while (iter.hasNext()) {
UserEMailAddress address = (UserEMailAddress) iter.next();
addAddress(message, address, Message.RecipientType.BCC);
}
}

//设定回复地址
Collection repliesUser = mail.getRepliesUser();
if (repliesUser != null && repliesUser.size() > 0) {
Iterator replyIter = repliesUser.iterator();
Collection replyAddresses = new ArrayList();
while (replyIter.hasNext()) {
UserEMailAddress reAddress = (UserEMailAddress) replyIter
.next();
String replyUserName = reAddress.getUserName();
String replyEmail = reAddress.getEmailAddress();
InternetAddress re = new InternetAddress(replyUserName,
replyEmail);
replyAddresses.add(re);
}
message.setReplyTo((Address[]) replyAddresses
.toArray(new Address[] {}));
}

//设定需要发送收条,第二参数为回复地址,可以多个设定
if(mail.isReplySign()){
//设定收条地址
repliesUser = mail.getRepliesUser();
if (repliesUser != null && repliesUser.size() > 0) {
Iterator replyIter = repliesUser.iterator();
Collection replyAddresses = new ArrayList();
while (replyIter.hasNext()) {
UserEMailAddress reAddress = (UserEMailAddress) replyIter
.next();
String replyUserName = reAddress.getUserName();
String replyEmail = reAddress.getEmailAddress();
InternetAddress re = new InternetAddress(replyUserName,
replyEmail);
replyAddresses.add(re);
}
message.addHeader("Disposition-Notification-To","tx_1981@csm.com,tx_1982@csm.com");
}
}


//设定主题
message.setSubject(mail.getSubject());

//设定发送时间
message.setSentDate(mail.getSendDate());

//创建消息体
buildMessageContent(message);
//加了没有反映
// message.setFlag(Flags.Flag.DRAFT,true);
// message.setFlag(Flags.Flag.SEEN,true);






message.saveChanges();

Transport transport=session.getTransport("smtp");
MailListener listener=new MailListener();
transport.addTransportListener(listener);
transport.addConnectionListener(listener);
transport.connect(hostName,userName,password);
transport.sendMessage(message,message.getAllRecipients());
transport.close();
}
snowman_pc 2004-10-19
  • 打赏
  • 举报
回复
我试一下,有结果马上给分。谢谢各位!

67,513

社区成员

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

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