关于匿名发送电子邮件
2009-03-07 by zhiwei
这几天在研究怎么写个自动发送电子邮件的小程序,偶然的发现在新浪的SMTP不验证sender,于是就可以用任意电子邮件地址发送邮件了(这里的任意并不是所有的,有部分邮件地址是不能发的)。方法很简单的,我在网上找了一个JSP编写的发送电子邮件代码,自己稍作修改,再装上个tomcat-apache就可以了(要想那个JSP代码的朋友可以给我发邮件,我可以send it to you)。既然JSP的可以,我想ASP和PHP写的也应该可以,因为原理是同样的。用JSP写的源码中须要用自己的新浪邮箱和密码,只须将sender改为任意的地址就行了,很简单。
在网上和monyer聊天,说到这个匿名发送电子邮件问题,当时他说地球人都知道,真晕,我还以为这是我“个人专利”呢,真是太孤陋寡闻了。他给我发了一个网页,在这里填写一个发件人,一个收件人地址,邮件标题和正文就可以发送了。很简单的。
其实,发件人地址并不一定是真正的sender,一封电子邮件的信头源文件里才有真正的sender,所以呢,那些心里有些不正常想法的朋友们要注意了,匿名邮件用来戏弄一下朋友同学还是可以的,要是用来行骗那可就要当心了。话不多说了,这里就是网址,快快体验一下吧:xeye.us/lab/fakemail/index.php
以下是 send.jsp的源码。其实这个程序并不是真正的匿名发送电子邮件,只不过是用一个伪造的邮箱地址发过罢了。邮件的真正发件人在信头源文件里呢。一般人是看不出来的。这个匿名发送电子邮件只是利用了一些电子邮件提供商(新浪)发送邮件不验证sender 来实现的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <%@ page contentType="text/html;charset=gb2312" %>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送成功</title>
</head>
<body>
<%
try{
//从html表单中获取邮件信息
String tto="XXX@126.com"; //收件人地址
String ttitle="邮件标题";
String tcontent="邮件内容。";
Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.sina.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true);
MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象
//设置邮件
InternetAddress from=new InternetAddress("XXX@XXX。com");//发件人地址
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);// 设置收件人,并设置其接收类型为TO
message.setSubject(ttitle);//设置主题
message.setText(tcontent);//设置信件内容
message.setSentDate(new Date());//设置发信时间
//发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.sina.com","sinauser","usersina");//以 smtp方式登录邮箱,sinauser为新浪邮箱帐号,usersina为密码
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有
//已设好的收件人地址
transport.close();
%>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>
<p>
<a href="send.jsp">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html> |
更新:目前新浪已经修复该bug,所以这个方法已经失效。
© 2009, chenzhiwei.net. 版权所有.
本文永久链接:http://chenzhiwei.net/2009/03/send-anonymous-email/

你好,我现在急需用JSP编写的发送电子邮件代码,希望你能发给我一份,谢谢!
朋友你好,拜读了您的匿名发送电子邮件,觉得非常有意思,能否把ASP的代码赐给我一份?非常感激,呵呵 小弟邮箱是:net00@126.com
嗨,志伟。我在做一个可以自动发邮件的网页,不知道如何开始做起。能把你的code发给我做参考吗?
我的邮箱是 acceleratedman@gmail.com
谢谢
你好,你好。
朋友,你好。代码已经给你发过去了。学习愉快哦。。。
已经将源码发到你邮箱里了。