代码如下

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. SDUST第十一次oj作业液晶显示问题

    Problem H: 液晶显示 Time Limit: 1 Sec  Memory Limit: 32 MBSubmit: 3246  Solved: 1594[Submit][Status][Web ...

  2. MVC如何在解决方案下创建文件夹

    背景:为什么要在解决方案下创建文件夹? 比如,在开发过程中,会抽象出大量的公共方法,如数据库访问的方法.配置文件读取方法等等,将这些方法生成自己的DLL库文件,方便在其他的项目中进行复用.那么,这些方 ...

  3. Linux学习-编译前的任务:认识核心与取得核心原始码

    什么是核心 (Kernel) Kernel 其实核心就是系统上面的一个文件而已, 这个文件包含了驱动主机各项硬 件的侦测程序与驱动模块. 核心文件通常被放置成 /boot/vmlinuz-xxx ,不 ...

  4. selenium2 页面对象模型Page Object

    开发Selenium WebDriver测试时,可以使用页面对象模型,这样可使得测试脚本有更高的可维护性,减少了重复的代码,把页面抽象出来.同时页面对象模型也提供了一个注释,帮助缓存远程,避免出现元素 ...

  5. SPOJ QTREE4 - Query on a tree IV 树分治

    题意: 给出一棵边带权的树,初始树上所有节点都是白色. 有两种操作: C x,改变节点x的颜色,即白变黑,黑变白 A,询问树中最远的两个白色节点的距离,这两个白色节点可以重合(此时距离为0). 分析: ...

  6. luogu3193 [HNOI2008]GT考试

    there #include <iostream> #include <cstdio> using namespace std; int n, m, mod, nxt[25], ...

  7. MacOS常用软件推荐

    1.效率提升神器Alfred 可以搜索文件.应用.web搜索.词典等等 链接:https://pan.baidu.com/s/1igv4tuXkuMFOPT9E6Cc5Jg 密码:3o51 软件解压密 ...

  8. pip 设置国内源提高速度

    临时使用: 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna. ...

  9. 如何安装mongodb.msi

    到MongoDB官网下载MongoDB软件:mongodb-win32-x86_64-2008plus-ssl-3.0.2-signed.msi, 放在想要安装的地方: 如:d:\MongoDB\ 2 ...

  10. ccna学习指南第七版

    1.加电post自检    闪存查找ios 可随时从命令行进入设置模式,为此可在特权模式下输入setup    ctrl+c退出特权模式 6.2cli   命令行界面 进入cli router> ...