代码如下

package ssmtest;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

import org.junit.Test;

public class mailTest {

@Test
public void sendmail() {

Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 开启发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", "smtp.163.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");

// 设置环境信息
Session session = Session.getInstance(props);

// 创建邮件对象
Message msg = new MimeMessage(session);
try {

// 邮件主题
msg.setSubject("邮件");

// 设置邮件内容

// 设置发件人
try {
msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText("赵睿智") + "\"<15142538049@163.com>"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
msg.setFrom(new InternetAddress("15142538049@163.com"));
msg.setDescription("");
msg.setSubject("");

// 设置发送时间
msg.setSentDate(new Date());

// 整封邮件的MINE消息体
MimeMultipart msgMultipart = new MimeMultipart("mixed");// 混合的组合关系
// 设置邮件的MINE消息体
msg.setContent(msgMultipart);

// 开始附件处理
// 附件1
MimeBodyPart attch1 = new MimeBodyPart();
// 附件2
MimeBodyPart attch2 = new MimeBodyPart();
// 正文内容
MimeBodyPart content = new MimeBodyPart();

// 把内容,附件1,附件2加入到 MINE消息体中

msgMultipart.addBodyPart(attch1);
msgMultipart.addBodyPart(attch2);
msgMultipart.addBodyPart(content);

DataSource ds1 = new FileDataSource(new File("C:/Users/TRS_ZHZ/Desktop/a.txt"));
// 数据处理器
DataHandler dh1 = new DataHandler(ds1);
// 设置第一个附件的数据
attch1.setDataHandler(dh1);
// 设置第一个附件的文件名
attch1.setFileName("file1.txt");

DataSource ds2 = new FileDataSource(new File("C:/Users/TRS_ZHZ/Desktop/timg.jpg"));
DataHandler dh2 = new DataHandler(ds2);
attch2.setDataHandler(dh2);
try {
attch2.setFileName(MimeUtility.encodeText("文件2.jpg"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// 正文(图片和文字部分)
MimeMultipart bodyMultipart = new MimeMultipart("related");
// 设置内容为正文
content.setContent(bodyMultipart);

// html代码部分
MimeBodyPart htmlPart = new MimeBodyPart();
// html中嵌套的图片部分
MimeBodyPart jpgBody = new MimeBodyPart();
bodyMultipart.addBodyPart(htmlPart);
bodyMultipart.addBodyPart(jpgBody);
// 添加正文图片
FileDataSource fds = new FileDataSource("C:/Users/TRS_ZHZ/Desktop/timg.jpg");
jpgBody.setDataHandler(new DataHandler(fds));
jpgBody.setContentID("logo_jpg");
// 添加正文html代码
htmlPart.setContent("<span style='color:red'>hello world</span>" + "<img src= \"cid:logo_jpg\">",
"text/html;charset=utf-8");

msg.saveChanges();

Transport transport = session.getTransport();
// 连接邮件服务器
transport.connect(" 此处为账户", "此处为设置的密码");
// 发送邮件
//946869226@qq.com
transport.sendMessage(msg, new Address[] { new InternetAddress("946869226@qq.com") });
// 关闭连接
transport.close();
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

错误信息:

com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp3,DdGowABnLuvkUPxZlqkSAA--.416S2 1509708015,please see http://mail.163.com/help/help_spam_16.htm?ip=114.243.25.188&hostid=smtp3&time=1509708015

大家有没有什么好的规避的办法?

554 DT:SPM 163 smtp5,D9GowAD3RPYqSvxZjpMaAA--.4817S2 1509706293 坑爹的防垃圾邮件机制的更多相关文章

  1. 163邮箱问题:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2

    最近公司需要开发一个自定义邮箱功能,上网查询一下,利用163邮箱发送邮件. 由于163 的反垃圾机制,(坑爹机制.) 一般出现 554有在1)测试中用了test,测试,关键字在主题或者内容里面. 但是 ...

  2. smtplib.SMTPDataError: (554, 'DT:SPM 126 smtp5错误解决办法

    1.自动化测试中,调用邮件模块自动发送邮件时,运行脚本报错: smtplib.SMTPDataError: (554, 'DT:SPM 126 smtp5,jtKowAD3MJz2c1JXLcK2AA ...

  3. perl 用网易发邮件报错 554 DT:SPM 163 smtp14

    查看相关链接,貌似被当成垃圾邮件了,发不出去 554 DT:SPM 163 smtp14,EsCowACHUegmKpdc3giRMQ--.29617S2 1553410599,please see ...

  4. 邮件:事务失败。 服务器响应为:DT:SPM 163 smtp

    几年前我做的一个项目,日发邮件最高峰时几十万.自以为对邮件发送方面已经有了一定认识,所以近期机缘巧合之下,又有项目需要发送邮件,不禁自信满满,暗自庆幸能不手到擒来乎? 不想老革命遇到新问题.我原先的邮 ...

  5. smtplib.SMTPDataError: (554, b'DT:SPM 163……)

    1.报错535: 未将POP3/SMTP服务开启.通过在163邮箱内 设置 获取授权码  打开,通过授权码可以进行第三方登录.此处的Password填写授权码. 2.报错554: 第一种情况:缺失发件 ...

  6. smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3nir1u6xZq42WDw--.22935S2 1504492533,please

    # from email.mime.text import MIMEText # # msg = MIMEText('hello, send by Python...', 'plain', 'utf- ...

  7. app里使用163邮箱发送邮件,被163认为是垃圾邮件的坑爹经历!_ !

    最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util; import android.os.As ...

  8. smtplib.SMTPDataError: (554, b'DT:SPM 126 smtp

    报错信息 smtplib.SMTPDataError: (554, b'DT:SPM 126 smtp7,DsmowAA3uguL7e1cyvkyFw--.22553S3 1559096715,ple ...

  9. [转]smtplib.SMTPDataError: (554, b'DT:SPM的异常

    本文转自:https://blog.csdn.net/mapeifan/article/details/82428493 python 发送邮件,出现如下异常 异常如下: smtplib.SMTPDa ...

随机推荐

  1. FIFO buffer 和普通buffer区别

    1.FIFO可以说一块具体的硬件存储设备,也可以说程序在内存中开辟的一段内存区域.而buffer往往就是一段缓冲的数据区域 2.FIFO的数据是先进先出的,而buffer没有这个限制,可以全局访问 3 ...

  2. redis--py操作redis【转】

    Python操作redis 请给作者点赞--> 原文链接 python连接方式:点击 下面介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个val ...

  3. Java做爬虫也很方便

    首先我们封装一个Http请求的工具类,用HttpURLConnection实现,也可以用HttpClient, 或者直接用Jsoup来请求. 工具类实现比较简单,就一个get方法,读取请求地址的响应内 ...

  4. [转] sublime插件

    Sublime Text 系列 Sublime Text:学习资源篇 Sublime插件:增强篇 Sublime插件:Markdown篇 Sublime插件:C语言篇 Sublime插件:主题篇 Su ...

  5. 25、Base64

    Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3 ...

  6. Install Oracle 11G Release 2 (11.2) on Oracle Linux 7 (OEL7)

    Install Oracle 11G Release 2 (11.2) on Oracle Linux 7 (OEL7) This article presents how to install Or ...

  7. [UnicodeEncodeError]:Django中解决URL中文解释乱码问题

    Django中在使用HttpResponseRedirect的时候,跳转URL中如果存在中文,会报错:会报UnicodeEncodeError错误. 解决办法: 使用urlquote对URL进行编码 ...

  8. Eclipse调试程序及项目的导入导出

    Eclipse调试程序 调试概述: ①   调试就是测试程序的方法,主要的目的就是解决程序的逻辑问题,流程是:发现问题.修改问题.正确执行; ②   以前我们可以使用System.out.printl ...

  9. failed to allocate for range 0: no IP addresses available in range set: 172.20.xx.1-172.20.xx.254

    今天遇到一个机器上的Pod 在创建以后一直处于Init 0/1的状态,进到这个节点查看其kubelet的状态,发现果然有问题 systemctl status kubelet .go:] Contai ...

  10. 【转】[重构]Primitive Obsession

    http://blog.csdn.net/wxr0323/article/details/7913950 Primitive Obsession(基本类型偏执) 偏执这个词实在是有点难懂.百度百科传送 ...