在钓鱼邮件的欺骗中,最常用的手法就是为邮件发送人添加别名,如果邮件发送人的名称跟邮件接收人熟悉的别名相近的话,那钓鱼成功率要提升一倍。
1. 简单邮件
JAVA使用JavaMail工具包进行邮件发送,其MAVAN依赖如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>1.5.6</version>
</dependency>
所有的邮件服务器都采用SMTP协议,进行邮件发送,以新浪的免费邮箱为例,完整的JavaMailSender配置代码如下:
@Bean
public JavaMailSenderImpl mailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setDefaultEncoding("UTF-8");
mailSender.setHost("smtp.sina.com");
// 替换为自己的用户名,这里不能添加别名
mailSender.setUsername("yiifaa@sina.com");
// 替换为自己的密码
mailSender.setPassword("******");
mailSender.setProtocol("smtp");
mailSender.setPort(25);
return mailSender;
}
添加别名的位置在MailMessage中,也就是邮件模板,如下:
@Bean
public SimpleMailMessage emailMessage() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("IT服务中心<yiifaa@sina.com>");
message.setSubject("测试邮件");
return message;
}
可以看出,操作非常简单,格式是“别名<邮件地址>”,并且支持中文名称。
2. 多媒体邮件
上述的方法只适合于简单的文本邮件,如果要加载多媒体内容,那么上述的方法会报错,错误信息如下:
com.sun.mail.smtp.SMTPSendFailedException: 553 Envolope sender mismatch with header from..
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2267)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:2045)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1260)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:448)
解决办法比较麻烦,必须要对别名进行编码,代码如下:
String from = "yiifaa@sina.com";
String alias = "";
try {
// 必须要进行编码
alias=javax.mail.internet.MimeUtility.encodeText("IT服务中心");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
mm.setFrom(new InternetAddress(alias + " <"+from+">"));
赶紧去试试吧,据我发现,向企业内网发送邮件,往往具有更好的效果。