学习是一个漫长而又复杂的过程,对待java的学习更是如此。学无止境,永远要汲取新的知识。今天主要为大家说明一下,java的邮件服务器james应该怎么配置,以及用实例为大家展示怎么样发送包含附件的邮件。
首先我们要配置james,过程还是比较简单的,主要包括以下几个步骤:
1.安装jdk和jre;
2. 安装james server并配置默认server名字等信息。安装james server比较简单,直接到官网下载整个的zip包到本地,然后解压就可以了。解压到本地之后,到本地目录的/james-2.3.2/apps/james/SAR-INF下面,打开config.xml文件。在这里配置邮箱的域名和服务器的名字。代码如下:
<config> <James> <postmaster>support@abc.com</postmaster> <servernames autodetect="true" autodetectIP="true"> <servername>abc.com</servername> </servernames> <James> <config>
3.配置环境变量JAVA_HOME,将java安装环境的变量配置好,这个部分不同的系统和平台不一样,都可以参考网上的流程。
4.启动James server,在linux环境下启动james server的时候需要注意,因为考虑到发送邮件访问的权限。这里需要切换到具有管理员权限的帐号下然后再启动它们。
启动的命令如下:
. / bin / run.sh
启动后的界面如下图:
下面通过一个实际的代码为大家展示如何发送含有附件的邮件:
package cn.wz.util; import java.io.FileOutputStream; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * @Description: 发送包含附件的邮件 */ public class SendEmail_attachments { private static String mailFrom = null; // 指明邮件的发件人 private static String password_mailFrom = null; // 指明邮件的发件人登陆密码 private static String mailTo = null; // 指明邮件的收件人 private static String mailTittle = null; // 邮件的标题 private static String mailText = null; // 邮件的文本内容 private static String mail_host = null; // 邮件的服务器域名 private static String photoSrc = null; // 发送图片的路径 public static void main(String[] args) throws Exception { mailFrom = "test1@wz.com"; password_mailFrom = "test"; mailTo = "test2@wz.com"; mailTittle = "JavaMail邮件发送测试"; mailText = "使用JavaMail创建的带附件的邮件"; mail_host = "wz.com"; photoSrc = "resource\\images\\5.jpg"; Properties prop = new Properties(); prop.setProperty("mail.host", mail_host); // 需要修改 prop.setProperty("mail.transport.protocol", "smtp"); prop.setProperty("mail.smtp.auth", "true"); // 使用JavaMail发送邮件的5个步骤 // 1、创建session Session session = Session.getInstance(prop); // 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态 session.setDebug(true); // 2、通过session得到transport对象 Transport ts = session.getTransport(); // 3、连上邮件服务器,需要发件人提供邮箱的用户名和密码进行验证 ts.connect(mail_host, mailFrom, password_mailFrom); // 需要修改 // 4、创建邮件 Message message = createAttachMail(session); // 5、发送邮件 ts.sendMessage(message, message.getAllRecipients()); ts.close(); } /** * @Method: createAttachMail * @Description: 创建一封带附件的邮件 */ public static MimeMessage createAttachMail(Session session) throws Exception { MimeMessage message = new MimeMessage(session); // 设置邮件的基本信息 message.setFrom(new InternetAddress(mailFrom)); // 发件人 message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo)); // 收件人 // 邮件标题 message.setSubject(mailTittle); // 创建邮件正文,为了避免邮件正文中文乱码问题,需要使用charset=UTF-8指明字符编码 MimeBodyPart text = new MimeBodyPart(); text.setContent(mailText, "text/html;charset=UTF-8"); // 创建邮件附件 MimeBodyPart attach = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource(photoSrc)); // 需要修改 attach.setDataHandler(dh); attach.setFileName(dh.getName()); // 创建容器描述数据关系 MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(text); mp.addBodyPart(attach); mp.setSubType("mixed"); message.setContent(mp); message.saveChanges(); // 将创建的Email写入到F盘存储 message.writeTo(new FileOutputStream("F:/Program Files/TestMail/ImageMail.eml")); // 需要修改 // 返回生成的邮件 return message; } }
以上就是关于java的邮件服务器james的配置过程。以及发送含有附件邮件的相关内容。想要了解更多java经典例子,敬请关注奇Q工具网。
推荐阅读: