请教 javamail 在 linux 上发送邮件

zhenyang2002 2003-10-10 10:48:18
jsp 在执行
Transport transport = mailSession.getTransport("smtp");
时抛出异常:
javax.mail.NoSuchProviderException: smtp


但是我同样的代码直接在linux 终端上执行就没有问题。
有没有人在 linux 上用 javamail 发送邮件成功过的?
...全文
94 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pingcsdn 2003-11-19
  • 打赏
  • 举报
回复
告诉我你的邮箱,我给你发过去!
zhenyang2002 2003-10-16
  • 打赏
  • 举报
回复
没有啊 :(
littlecong 2003-10-15
  • 打赏
  • 举报
回复
是classpath的问题
javaMail.jar 里有个文件javamail.default.providers,这里面有缺省的的设置,具体含义清参照文档

我估计可能你的classpath里有其他的类似javamail.providers这样的文件,
Mench 2003-10-15
  • 打赏
  • 举报
回复
顶!!!
zhenyang2002 2003-10-12
  • 打赏
  • 举报
回复
讨论一下吧:(
zhenyang2002 2003-10-11
  • 打赏
  • 举报
回复
问题:
这个程序在 window 下使用 java Sendmailbean 可以发送邮件;
将 main() 中的代码加在 jsp 中也可以通过页面发送邮件。
但是在 linux 下,通过 linux 命令也能发送邮件;

将 main() 中的代码加在 jsp 中就不能发送邮件了!!!
jsp 在执行
Transport transport = mailSession.getTransport("smtp");
时抛出异常:
javax.mail.NoSuchProviderException: smtp

大家看看,顶顶吧。多谢!
zhenyang2002 2003-10-11
  • 打赏
  • 举报
回复
我把代码放上:

我把代码放上:

package sendmail;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class Sendmailbean
{

private MimeMessage mimeMsg;

private Session session;
private Properties props;
private boolean needAuth = false;

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

private Multipart mp;

private SendAuth sendauth;
public Sendmailbean() {
setSmtpHost(SMTPHOST); //SMTPHOST 是发送邮件服务器的IP
createMimeMessage();
}

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

public void setSmtpHost(String hostName) {
System.out.println("mail.smtp.host = "+hostName);
if(props == null)props = System.getProperties();
props.put("mail.smtp.host",hostName);
}

public boolean createMimeMessage()
{
try{
session = Session.getDefaultInstance(props,null);
}
catch(Exception e){
System.err.println("Create "+e);
return false;
}

try{
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();

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

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");
}
}

public void setNamePass(String name,String pass) {
username = name;
password = pass;
}

public boolean setSubject(String mailSubject) {

try{
mimeMsg.setSubject(mailSubject);
return true;
}
catch(Exception e) {
System.err.println("Subject "+e);
return false;
}
}

public boolean setBody(String mailBody) {
try{
BodyPart bp = new MimeBodyPart();
bp.setContent(mailBody,"text/plain;charset=GB2312");
mp.addBodyPart(bp);

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

public boolean addFileAffix(String filename) {
try{
System.out.println(filename);
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());

mp.addBodyPart(bp);

return true;
}
catch(Exception e){
System.err.println("File "+filename+" "+e);
return false;
}
}

public boolean setFrom(String from) {

try{
System.out.println("From "+from);
mimeMsg.setFrom(new InternetAddress(from));
return true;
}
catch(Exception e)
{ return false; }
}

public boolean setTo(String to){
if(to == null)return false;

try{
System.out.println("To "+to);
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
return true;
}
catch(Exception e)
{ return false; }

}

public boolean setCopyTo(String copyto)
{
if(copyto == null)return false;
try{
System.out.println("CopyTo"+copyto);
mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
return true;
}
catch(Exception e)
{ return false; }
}

public String sendout()
{
String ee="";
try{
mimeMsg.setContent(mp);
mimeMsg.saveChanges();

sendauth=new SendAuth(username,password);
ee+="Sendbegin....";

Session mailSession = Session.getInstance(props,(Authenticator)sendauth);
ee+="Auth....";

Transport transport = mailSession.getTransport("smtp");
ee+="Smtp....";

transport.connect((String)props.get("mail.smtp.host"),username,password);
ee+="Connect....";

transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
ee+="Send....";

ee+="OK!";
transport.close();

return "OK!";
}
catch(Exception e)
{
ee+=e.toString();
return ee;
}
}

public static void main(String[] args) {

String mailbody = "Hehe";

Sendmailbean themail = new Sendmailbean();
themail.setNeedAuth(true);
themail.setNamePass(NAME,PASS);//NAME,PASS 为发送邮件服务器的认证用户名和密码

if(themail.setSubject("test") == false) return;
if(themail.setBody(mailbody) == false) return;
if(themail.setTo("zhenyang2002@vip.sina.com") == false) return;
//if(themail.setFrom("hehe") == false) return;
//if(themail.addFileAffix("c:\\boot.ini") == false) return;


themail.sendout();
}
}
zhenyang2002 2003-10-10
  • 打赏
  • 举报
回复
大家来看看,等一下也好啊。
aku0708 2003-10-10
  • 打赏
  • 举报
回复
学习
indeed 2003-10-10
  • 打赏
  • 举报
回复
dingding,stduy......
zhenyang2002 2003-10-10
  • 打赏
  • 举报
回复
up
pingcsdn 2003-10-10
  • 打赏
  • 举报
回复
Transport transport = session.getTransport("smtp");

transport.connect(host, username, password);
pingcsdn 2003-10-10
  • 打赏
  • 举报
回复
up

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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