栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Linux服务器 james邮箱服务器搭建 (附java测试Demo)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux服务器 james邮箱服务器搭建 (附java测试Demo)

准备工作 james 压缩包下载:

链接:https://pan.baidu.com/s/1SIGj2HIhzPl2DVhl8bS_5g?pwd=7tjj 
提取码:7tjj

安装所需环境:

因为是apache开源java项目所以Linux必须要有java环境:

安装 1.解压
tar -xf james-binary-2.3.2.1.tar.gz
2.进入bin目录,给phoenix.sh run.sh 两个文件赋权
chmod +wxr run.sh phoenix.sh

会遇见的问题:

1. 权限不足:出现原因有两种①你使用的是普通用户权限,他需要启动的端口都是100上下的,普通用户没有权限。②部分文件没有执行权限,你使用su获取的root用户,启动执行脚本,导致部分解压出来的文件所属用户组是root,你没有执行权限。
2.地址被占用:原因:端口被占用,占用的端口,启动服务需要的端口有
        4555 连接端口
        25 SMTP端口
        110  POP3端口
        119 NNTP端口

解决办法:

1.直接使用root用户全局操作。
2.在执行./run.sh脚本即第四步之后,在./apps/james/SAR-INF 文件下有个config.xml文件,该文件是邮箱服务器的配置文件,在该文件中修改所有的端口号即可,普通用户就可以调度修改后的端口。
3.部分文件没有执行权限,如果是用su获取root权限执行了一遍脚本的,可以使用root权限下chown -R '用户':'组' '文件'的方式修改文件下所有的用户组。

3.执行脚本
./run.sh
4.修改域名配置 4.1. 创建虚拟域名

如果是外网有域名的话就直接进入4.2

执行:

vi /etc/hosts

在文件中添加: 127.0.0.1 email.com 

既可在该网段下配置虚拟域名 

4.2. 修改配置

进入./apps/james/SAR-INF 文件下的config.xml

1.配置localhost

Postmaster@localhost 
 
	localhost 

修改为:

autodetect设为true会自动侦测你的主机名,设成false会用你指定的server name
autodetectIP设为true会为你的servername加上ip,如果开了一个用户user,那么他的邮件地址就是user@email.com

Postmaster@email.com 
 
	email.com 

2.注释下面配置


3.查找所有的myMailServer 替换为你自己的域名

myMailServer

修改为:

email.com

5.设置身份认证,取消注释

true

6.修改密码(可改可不改) 

 

默认是!chxxx! 不太记得了 

5.创建邮箱账号

1.进入控制台:telnet localhost 4555

2.输入用户名密码: root/root

3.创建用户:adduser user 123

会遇见的问题:

1.没有telnet命令。

解决办法:

1.检测telnet-server的rpm包是否安装。执行:rpm -qa telnet-server 。
2.若未安装,则执行:yum install telnet-server 进行安装,反之直接进入第三步。
3.检测telnet-server的rpm包是否安装。执行:rpm -qa telnet 。

4.若未安装,则执行:yum install telnet,反之直接进入第五步。

5.重新启动xinetd守护进程 service xinetd restart 。
6.如果两个都安装了都还没有用就重启服务器。

6.Foxmail测试

下载链接:Foxmail for Mac 

选择其他邮箱  > 手动设置 > 

> 输入自己添加的账号密码,服务器就填写自己的服务器地址

会遇见的问题:

1.云服务器防火墙没开。
2.虚拟域名有问题,可以在自己FoxMail的电脑上测一下可以不可以 ping 通

7.java代码测试Demo
package com.liang.sender;

import javax.mail.MessagingException;
import java.util.Scanner;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class Main {
    public static void main(String[] args) {
        //发送者账号密码
        final String user = "ronxxao.lxxng";
        final String password = "1xx3x";
        //接收者邮箱
        final String recipient = "lixxxry@163.com";

        Scanner scanner = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();
        String s = "";

        System.out.println("请输入要发送的信息");
        while (!(s = scanner.nextLine()).equals("end")) {
            sb.append(s);
            sb.append("
"); } try { sendEmail(user, password, recipient, "test", sb.toString()); } catch (MessagingException e) { e.printStackTrace(); } } private static void sendEmail(String user, String password, String recipient, String title, String sendMessage) throws MessagingException { Properties p = new Properties(); p.setProperty("mail.smtp.host", "email.xxxxx.top");//发送者邮箱服务器 p.setProperty("mail.smtp.port", "25");//发送者端口 p.setProperty("mail.smtp.auth", "true");//是否开启权限控制 p.setProperty("mail.transport", "smtp");//协议 Session session = Session.getInstance(p, new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password); } }); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); //设置收件人地址 message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); message.setSubject(title); message.setContent(sendMessage, "text/html;charset=UTF-8"); try { Transport.send(message, user, password); } catch (AuthenticationFailedException e) { System.out.println("身份验证失败"); } System.out.println("sent"); } }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号