直接发送一封现有的文件

来源:互联网 发布:二手备案域名交易 编辑:程序博客网 时间:2024/05/29 16:14

我们通过Java程序制作邮件是件十分繁琐的事情,因此可以考虑使用Microsoft Outlook制作好一封规范的邮件,使用程序发送。

下面的例子演示怎样直接发送一封现有的邮件:

package javamail;import java.io.FileInputStream;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/**    * 使用其他方式创建邮件并发送 */public class Demo2 {/** * @param args */public static void main(String[] args) throws Exception {//创建sessionProperties props = new Properties();//下面这两行是必须的,必须添加认证和协议props.setProperty("mail.smtp.auth", "true");props.setProperty("mail.transport.protocol", "smtp");//设置主机名,不用设置端口,因为端口是默认的props.setProperty("mail.host", "smtp.163.com");//new SubAuthenticator("************","abc123")Session session = Session.getInstance(props,//这里用到策略模式,用上面一行代码也可以new Authenticator(){protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("**********@163.com","abc123");}});session.setDebug(true);                //发送已经存在的邮件Message msg = new MimeMessage(session, new FileInputStream("D:\\JAVAWEB\\MyeclipseCode\\javamail2\\resource\\demo3.eml"));Transport.send(msg, InternetAddress.parse("************@qq.com"));}}
上述测试讲师测试成功了,我个人测试并未成功,邮件服务器经常会把正常的邮件当做垃圾邮件处理。会报如下错误:
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件。

参考书籍:《Java邮件开发详解》

参考视频:《传智播客_张孝祥_Java邮件开发教程》


原创粉丝点击