JAVAMAIL怎么使用代理发送邮件

newgo333 2008-07-09 10:03:00
JAVAMAIL怎么使用代理发送邮件,而代理软件要用哪种类型的,能不能例举两个可用的软件.
...全文
1176 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
newgo333 2008-07-13
  • 打赏
  • 举报
回复
看样子是没有人能解决了...结了算了
rascalboy520 2008-07-10
  • 打赏
  • 举报
回复
ee4456 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kuyesuifeng 的回复:]
得用JAVAMAIL设置一个代理服务器:
Properties props=System.getProperties();//获取系统属性
props.put("http.proxySet","true");//设置代理主机参数
props.put("http.proxyHost","172.28.2.1");
props.put("http.proxyPort","85");
props.put("mail.smtp.host",mailhost);
[/Quote]

这个应该是可行的,但是必须设置一个代理服务器,LZ你没有设置一个代理服务器,应该不行
zhangshenqiu 2008-07-10
  • 打赏
  • 举报
回复
学习下
胡矣 2008-07-10
  • 打赏
  • 举报
回复
没有过代理的
关注
newgo333 2008-07-10
  • 打赏
  • 举报
回复
谢谢各位的支持,本人能在正常上网情况发送邮件,
现在的问题是使用代理软件来发送,没成功,而且本人正需要这个方面的解决方法,

我还是把我这边的情况说一下:
我这边只有一台机子能上网,其它的机子都不行,而我是通过在"可以上网的机子"上,装了一个Flos HTTP Proxy 1.0a7 软件,我是通过这台机子的代理才上网的,代理的端口是6666,IP为192.168.0.6

请教一下,这个代理软件有没有特别的功能上的限定才能做用JAVAMAIL的代理,如果有请指明一个能够使用的代理软件.

hornbilltofy ,rascalboy520 谢谢你们的例子,不过例子只适合在正常的上网情况才能使用,而如果用我上面提到的
Flos HTTP Proxy 1.0a7 服务器代理软件,就行不通了,报错.
zhfeir 2008-07-10
  • 打赏
  • 举报
回复
学习。。。。
hornbilltofy 2008-07-10
  • 打赏
  • 举报
回复
你只要能上网就能发邮件,给你一个例子:
			// 创建 properties ,里面包含了发送邮件服务器的地址。 
Properties mailProps = new Properties();
final String usr=(String)servletContext.getInitParameter("SendMailFrom");//这里填写你发信者的邮箱地址
final String pwd=(String)servletContext.getInitParameter("SendMailPassword");//这里填写你发信者的邮箱密码
mailProps.put("mail.smtp.host", (String)servletContext.getInitParameter("SendMailServer")); //"mail.smtp.host"随便叫啥都行,"192.0.0.1"必须是真实可用的。
mailProps.put("mail.smtp.user",usr);
mailProps.put("mail.smtp.password",pwd);
mailProps.put("mail.smtp.auth","true");
// 创建 session
// 关键new Authenticator()。如果你的邮箱是SMTP验证的,就得这么写。否则会报错。Session.getInstance(props)这个方法是针对SMTP不要求验证的。
// 创建 邮件的message,message对象包含了邮件众多有的部件,都是封装成了set方法去设置的
Session mailSession = Session.getInstance(mailProps,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(usr,pwd); }//这里填写你发信者的邮箱地址和密码
});
MimeMessage message = new MimeMessage(mailSession);
// 设置发信人
message.setFrom(new InternetAddress((String)servletContext.getInitParameter("SendMailFrom")));
// 收信人
message.setRecipient(Message.RecipientType.TO,new InternetAddress(address));
// 邮件标题
message.setSubject(subject); //haha,吓唬人
// 创建 Mimemultipart,这是包含多个附件是必须创建的。如果只有一个内容,没有附件,可以直接用message.setText(String str)
//去写信的内容,比较方便。附件等于是要创建多个内容,往下看更清晰。
MimeMultipart multi = new MimeMultipart();
// 创建 BodyPart,主要作用是将以后创建的n个内容加入MimeMultipart.也就是可以发n个附件。我这里有2个BodyPart.
BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。
textBodyPart.setText(mess);
// 压入第一个BodyPart到MimeMultipart对象中。
multi.addBodyPart(textBodyPart);
// 如果文件名存在就创建第二个BodyPart,是一个FileDAtaSource
if(filename!=null&&!filename.equals("")){
File file= new File(filename);
if(file.isFile()){//如果文件确实存在
FileDataSource fds = new FileDataSource(filename);//必须存在的文档,否则throw异常。
BodyPart fileBodyPart = new MimeBodyPart(); //第二个BodyPart
fileBodyPart.setDataHandler(new DataHandler(fds)); //字符流形式装入文件
fileBodyPart.setFileName("newfilename"); //设置文件名,可以不是原来的文件名。
multi.addBodyPart(fileBodyPart);
}
}
// MimeMultPart作为Content加入message
message.setContent(multi);
// 所有以上的工作必须保存。
message.saveChanges();
// 发送,利用Transport类,它是SMTP的邮件发送协议,
Transport.send(message);

newgo333 2008-07-10
  • 打赏
  • 举报
回复
补充一下,本人是使自己的机子,通过提供代理并能上网的机子,发送邮件.
newgo333 2008-07-10
  • 打赏
  • 举报
回复
kuyesuifeng 先谢谢,不过你的方法我试过了,不行.

至于java2000_net 的方法我没有试过,不过其中的代理有点看不太懂.

我还是把我这边的情况说一下:
我这边只有一台机子能上网,其它的机子都不行,而我是通过在"可以上网的机子"上,装了一个Flos HTTP Proxy 1.0a7 软件,我是通过这台机子的代理才上网的,代理的端口是6666,IP为192.168.0.6

而我这边刚才有个项目也必须用到代理,环境我现在的上网环境一样
请高手们帮忙解决,急啊
kuyesuifeng 2008-07-09
  • 打赏
  • 举报
回复
得用JAVAMAIL设置一个代理服务器:
Properties props=System.getProperties();//获取系统属性
props.put("http.proxySet","true");//设置代理主机参数
props.put("http.proxyHost","172.28.2.1");
props.put("http.proxyPort","85");
props.put("mail.smtp.host",mailhost);
zhj92lxs 2008-07-09
  • 打赏
  • 举报
回复
学习下
老紫竹 2008-07-09
  • 打赏
  • 举报
回复
代理?是内网到外网的代码,还是代理邮件服务器?
如果是代理邮件服务器,那么直接发就行了,剩下的事情他去处理
如果是内网代理到外网,参考这个看看 http://www.java2000.net/viewthread.jsp?tid=213
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频

81,092

社区成员

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

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