精华内容
下载资源
问答
  • 昨天说了用宝塔面板的JAVA项目管理器来安装项目,不过鉴于宝塔的JAVA项目管理器会各种灵异,所以大鸟今天说下,如何在本地...可以看看之前的宝塔面板搭建的文章:一:下载JDK大鸟自己的电脑是windows10家庭版本,所...

    昨天说了用宝塔面板的JAVA项目管理器来安装项目,不过鉴于宝塔的JAVA项目管理器会各种灵异,所以大鸟今天说下,如何在本地配置JAVA环境,之后安装想要配置的项目。

    8ffe544711b0381d5e942b6c0bfab73c.png

    在官网下载jdk需要先注册,所以小伙伴们不注册下载不了,真是坑的很。好在注册也不繁琐,也不需要手机验证,邮箱验证是一定的,所以邮箱不能瞎填写。可以看看之前的宝塔面板搭建的文章:

    一:下载JDK

    大鸟自己的电脑是windows10家庭版本,所以我们用windows10家庭版本来安装JDK,安装之前需要先下载。

    地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    2806fdc53ccffce10a99224cbf00656c.png

    如果是64位就选择64版本的,注意下载之前,需要接受协议,图上蓝色部分。不过很坑的是,你需要先注册才能下载到jdk版本。所以小伙伴们,先注册去吧。

    二:安装JDK和设置环境变量

    下载好之后,就开始安装吧,默认安装就可以了,也可以自定义安装,大鸟安装的路径是:D:\Java\jdk1.8.0_221

    安装就不多说了,这个很简单,下面是安装好之后的设置,设置系统的环境变量。我的电脑点右键,然后选择高级系统设置:

    6bac05fbd03f69e6232aff86e2504ae3.png

    在打开的环境变量对话框后,单击【系统变量】下的【新建】按钮;然后输入JAVA_HOME和JRE_HOME对应的变量值。具体对应的设置,这里是大鸟自己的路径,具体根据自己的路径修改。JAVA_HOME D:\Java\jdk1.8.0_221

    JRE_HOME D:\Java\jdk1.8.0_221\jre

    截图看这更易懂:

    3a0fb0ad62192bd87c770e5017810ca0.png

    三:开始配置项目

    项目地址:https://github.com/dengyuhan/magnetW

    在版本里面选择windows版本下载,就可以了,之后解压,解压好之后,点击启动,如图:

    9654b16eca30a69dfd25927b602ef42a.png

    *如果打开失败,可以尝试 安装服务,这样我们就可以在本地访问了,然后访问http://localhost/。

    8d0c8bd56bf6e47fad7459dba56dc4f2.png

    在本地安装更简单,宝塔面板来配置这个玩意,实在是有点繁琐,所以你不会用宝塔,就可以在本来配置,很好搞定。

    展开全文
  • 各位大神,小弟想请问一下我想在自己的OA系统中做一个内部邮箱,就是可以自己创建邮箱 然后对员工收发邮件的功能。但是我现在只知道javaMail利用外部的邮箱服务来收发邮件, 并不能实现在内部有邮箱服务器的功能。...
  • Win10系统Java开发环境搭建(安装以及环境变量配置) 1.Jdk下载与安装 下载 下载地址(jdk8) 进入页面后下滑,根据自己系统找到对应的版本进行下载,我这里是windows64位 勾选协议后即可点击“Download jdk-8...

    Win10系统Java开发环境搭建(安装以及环境变量配置)


    1.Jdk下载与安装

    • 下载

    下载地址(jdk8)

    进入页面后下滑,根据自己的系统找到对应的版本进行下载,我这里是windows64位

    在这里插入图片描述

    勾选协议后即可点击“Download jdk-8u281-windows-x64.exe”按钮进行下载

    在这里插入图片描述

    这里下载时可能需要注册一个Oracle账号,用邮箱就能注册,自己注册以下,登录后就能下载了!

    登录成功后就会弹出下载

    在这里插入图片描述

    点击下载即可!


    • 安装

    打开装程序,弹出以下页面

    在这里插入图片描述

    点击下一步

    在这里插入图片描述可自行修改路径,最好是 英文路径
    然后点击下一步即可 完成安装


    2.环境变量配置

    电脑桌面找到“此电脑”,鼠标右键点击属性

    在这里插入图片描述

    在打开的页面中找到“高级系统配置

    在这里插入图片描述

    点击“环境变量

    在系统变量处点击新建,
    在这里插入图片描述

    变量名为:“JAVA_HOME”

    变量值为:刚刚安装的jdk路径“C:\Program Files\Java\jdk1.8.0_141”(找到自己的安装路径输入进去)
    在这里插入图片描述
    然后点击确定
    接下来找到Path变量,并且双击打开

    在这里插入图片描述新建两个值

    ①%JAVA_HOME%\bin

    ②%JAVA_HOME%\jre\bin

    在这里插入图片描述

    然后确定,退出即可!


    3.验证环境是否配置成功

    运行dos窗口,cmd

    在这里插入图片描述

    输入"java -version"

    在这里插入图片描述

    显示内容如图所示,即为安装成功!

    至此,Java环境已经完全安装成功!

    展开全文
  • 邮件服务器James搭建企业邮件系统

    万次阅读 2014-09-23 14:21:04
    答案是肯定的,可以,Java开源的邮件系统很多,经过筛选,调研最终我们选择用James来搭建自己的邮件系统。接下来我们来看看window7环境下如何用James来搭建邮件系统: Apache James 简称 James, 是 Java Apache ...

            中小企业是否可以免费拥有自己的邮件系统,而不是去购买腾讯,163的企业邮箱。答案是肯定的,可以,Java开源的邮件系统很多,经过筛选,调研最终我们选择用James来搭建自己的邮件系统。接下来我们来看看window7环境下如何用James来搭建邮件系统:

           Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写。James 是100%基于Java的电子邮件服务器。它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。

    前期准备

    1.Jdk1.6 需要配置Java环境变量,这个就不在这里详细介绍如何配置了。

    2.James运行文件,下载地址http://james.apache.org/download.cgi



    下载完成后直接解压,解压后找到D:\X-EI\apache-james-2.3.2\james-2.3.2\bin目录下的run.bat文件,就可以启动james邮件服务器了。

             ps:如果James用到的端口被占用,可能启动的时候会报错,然后一闪而过,这个时候我们可以去修改James的POP3,SMTP,NNTP协议的端口,他们三个默认的端口为110,25,119.这三个协议我们可能见的比较多,但是你是否了解他们都代表什么意思呢,既然我们提到了这三个协议,那么我们就来看看这三个协议代表什么意思。

    • POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件
    • SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件
    • NNTP(Network News Transport Protocol),中文释义:(RFC-977)网络新闻传输协议。这是一个主要用于阅读和张贴新闻文章(俗称为“帖子”,比较正式的是“新闻组邮件”)到Usenet上的Internet应用协议,也负责新闻在服务器间的传送。NNTP用于向Internet上NNTP服务器或NNTP客户(新闻阅读器)发布网络新闻邮件的协议,提供通过Internet使用可靠的基于流的新闻传输,提供新闻的分发、查询、检索和投递。NNTP还专门设计用于将新闻文章保存在中心数据库的服务器上,这样用户可以选择要阅读的特定条目,还提供过期新闻的索引、交叉引用和终止。

    归纳下就是pop3是收邮件的协议,smtp是发邮件的协议,nntp是新闻协议。

    如何修改James这几个协议的端口

    找到目录D:\X-EI\apache-james-2.3.2\james-2.3.2\apps\james\SAR-INF底下的config.xml文件,用editplus或者其他编辑器打开文件,ctrl+f搜索pop3
      <pop3server enabled="true">
          <!-- POP3协议端口 -->
          <port>1130</port>
          <handler>
             <helloName autodetect="false">jwdstef.com</helloName>
             <connectiontimeout>120000</connectiontimeout>
          </handler>
       </pop3server>
          我这里把原来的110端口修改成1130端口了,其他的两个端口修改也一样。
    <smtpserver enabled="true">
          <!-- SMTP协议端口 -->
          <port>25</port>
          <handler>     
             <helloName autodetect="false">jwdstef.com</helloName>
             <connectiontimeout>360000</connectiontimeout>
             <authRequired>true</authRequired>
             <authorizedAddresses>192.168.0.0/255.255.255.0,127.0.0.0/8</authorizedAddresses>
             <maxmessagesize>0</maxmessagesize>
          </handler>
       </smtpserver>

     <nntpserver enabled="true">
          <!-- NNTP协议端口 -->
          <port>119</port>
          <handler>
             <helloName autodetect="false">jwdstef.com</helloName>
             <connectiontimeout>120000</connectiontimeout>
             <authRequired>false</authRequired>
          </handler>
       </nntpserver>

    我们修改完这个几个端口后,就可以顺利启动James服务了。



    配置服务


    默认配置启动James服务,只能给内网发送邮件,我们的要求是可以给外网的其他邮箱发邮件,比如163,qq,sina等邮箱发送邮件,那么我们必须修改James默认配置,接下来我们就来看看如何修改
    在D:\X-EI\apache-james-2.3.2\james-2.3.2\apps\james\SAR-INF下打开config.xml文件,找到
    <postmaster>Postmaster@localhost</postmaster>
          <servernames autodetect="true" autodetectIP="true">
             <servername>localhost</servername>
          </servernames>
    修改localhost为你自己的域名,假如我们的域名是jwdstef.com,那么修改完成为:
    <postmaster>Postmaster@jwdstef.com</postmaster>
          <servernames <span style="color:#cc0000;">autodetect="false" autodetectIP="false"</span>>
             <servername>jwdstef.com</servername>
          </servernames>
    修改dns服务,打开cmd,执行ipconfig /all 找到自己的DNS服务


    <servers>
             <!--Enter ip address of your DNS server, one IP address per server -->
             <!-- element. -->
             <server>mail.126.com</server>
              <server>smtp.163.com</server>
              <server>202.106.195.68</server>
               <server>192.168.1.98</server>
              <server>jwdstef.com</server>
            
          </servers>
          <autodiscover>false</autodiscover>
          <authoritative>false</authoritative>
    找到
    <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> 
    	<processor> relay-denied </processor> 
    	<notice>550 - Requested action not taken: relaying denied</notice> 
    </mailet>

    将其注释掉。并且开启SMTP Server 身份验证,打开
    <span style="font-family:Microsoft YaHei;"><authRequired>true</authRequired></span>
    打开后邮箱访问需要帐号验证,这样保证邮箱的安全性。
    James 邮件用户的用户信息默认保存在apps\james\var\users 目录下,通过修改配置文件apps\james\SAR-INF\config.xml,可以把用户信息保存到数据库中,
    配置方法如下
    找到
     <users-store>
          <repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
             <destination URL="file://var/users/"/>
          </repository>

    改为
    <users-store>
          
          <repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://intouch/users">
             <sqlFile>file://conf/sqlResources.xml</sqlFile>
          </repository>
    
       </users-store>

    通过修改用户的存储介质从file变成了db,db://intouch/users 中intouch是数据库的名字,users是邮件系统存储用户的表名
    然后我们需要让邮件信息也保存在数据库,邮件信息的保存需要修改

    找到<inboxrepository>项, 默认是<repository destinationurl="file://var/mail/inboxes/" type="mail"> 
    屏蔽掉,在它下面有个例子<repository destinationurl="db://maildb/inbox/" type="mail">,激活它.
    然后是spool,找到<spoolrepository>将默认屏蔽掉.   
    激活<repository   destinationurl="db://maildb/spool/spool"   type="spool"/>  
    这时候数据库中会自动建两个表:spool和inbox;spool是临时表,只要通过邮件服务器的邮件,不管是发,收,都会存到这个表里。存入的时候邮件有个状态:message_state,状态的值有几种,transe..span,root等第一个表示正在传,当传完后邮件服务器会自动删除这条邮件(此功能可配置,后面有介绍,通过改删除邮件的SQL可屏蔽此功能);当接收一个邮件时,也是先放在spool表里。然后往inbox表里转存;

    我这里使用的数据库是Mysql,首先我在mysql里面创建好数据库intouch,找到<data-source>
    <data-source name="intouch" class="org.apache.james.util.dbcp.JdbcDataSource">
             <driver>com.mysql.jdbc.Driver</driver>
             <dburl>jdbc:mysql://localhost/intouch?autoReconnect=true</dburl>
             <user>root</user>
             <password>123</password>
             <max>20</max>
          </data-source>
    配置好数据库连接。然后将对应数据库的jar包放到D:\X-EI\apache-james-2.3.2\james-2.3.2\lib下
    这样James的数据库连接就配置好了,启动James服务,我们会看到mysql数据库intouch库里面多了一个users表。

    我们还需要配置一个地方,修改c:/windows/system32/drivers/etc/hosts 文件,增加一个地址映射。
    127.0.0.1 jwdstef.com

    以上配置完成后,James邮箱所有配置完成。

    接下来我们需要登录邮件服务器,去增加用户,发送邮件,接收邮件。

    执行CMD,打开命令窗口,执行命令telnet jwdstef.com 4555,
    JAMES Remote Administration Tool 2.3.1
    Please enter your login and password
    Login id:
    root
    Password:
    root
    Welcome root.HELP for a list of commands

    这里的4555端口是默认的,为了安全,我们最好修改下这个端口,还有登录的用户名和密码,最好也修改了。修改的位置
    <remotemanager enabled="true">
       	<!--服务连接端口-->
          <port>4555</port>
          <handler>
             <helloName autodetect="false">jwdstef.com</helloName>
             <administrator_accounts>
             	<!--服务连接管理员帐号密码-->
                <account login="root" password="root"/>
             </administrator_accounts>
             <connectiontimeout> 60000 </connectiontimeout>


    登录成功后,我们可以添加用户,命令如下:
    adduser 帐号 密码



    完成配置后,我们增加了用户,但是如何收发邮件呢,通过命令去收发邮件肯定不可能,所以我们需要一个webmail来收发邮件,我们可以自己搭建一个webmail客户端应用,也可以使用foxmail等邮件客户端软件。

    我们先看看如何配置foxmail,使其可以连接到我们刚才搭建的邮件服务器,完成邮件的收发。

    打开foxmail进入设置页面,添加账号


    jwdstef这个用户是我在James服务后台通过命令 adduser jwdstef jd1增加的。配置完成后,我们就可以收发邮件了。我们来试试给163的邮箱发一封邮件



    登录163邮箱



    收到邮件,说明我们的邮件服务器配置成功了!

    如果还不能成功发送,接收,采取如下暴力配置:

    ①、查找替换所有的 localhost为域名

    ②、查找所有autodetect属性,修改为false。autodetectIP也设为false.

    查找所有myMailServer,替换为域名。

    附件大小配置

    整合了mysql,james 对附件大小的限制是使用mysql对行记录的限制来实现的。mysql在默认配置配置情况下默认是1M

    修改mysql所在安装目录的my.ini 增加max-allowed-packet=64M(附件大小) 

    收附件的时候,会遇到收不到超过10m附件的情况,一个是前面说的mysql字段大小限制,还有一个会有jvm虚拟内存的限制,因为默认16m的虚拟内存是不够的,要在james中修改。这里有两种修改方法: 


    1)在run.bat中加入set JAVA_OPTS=“-Xms32m -Xmx512m -Xss512m” 并启动 
    2)在conf/wrapper.conf修改并通过服务启动

    wrapper.java.initmemory=64 
    wrapper.java.maxmemory=512

    如果想正常收发邮件,请确保好helo或ehlo名,并对自己的mx地址做好dns反向解析,就可以基本保证全网收发.

    James用户密码的加密方式

    james 用户密码所用的加密方式是sha加密

    /**
    	 * 可以用于 md5 或者 sha 加密
    	 * 
    	 * @param pass
    	 *            要加密的明文
    	 * @param algorithm
    	 *            加密方式 (md5或 sha)
    	 * @return
    	 * @throws NoSuchAlgorithmException
    	 */
    	public static String digestString(String pass, String algorithm) 
            throws NoSuchAlgorithmException {
    
    		MessageDigest md;
    		ByteArrayOutputStream bos;
    
    		try {
    			md = MessageDigest.getInstance(algorithm);
    			byte[] digest = md.digest(pass.getBytes("iso-8859-1"));
    			bos = new ByteArrayOutputStream();
    			OutputStream encodedStream = MimeUtility.encode(bos, "base64");
    			encodedStream.write(digest);
    			return bos.toString("iso-8859-1");
    		} catch (IOException ioe) {
    			throw new RuntimeException("Fatal error: " + ioe);
    		} catch (MessagingException me) {
    			throw new RuntimeException("Fatal error: " + me);
    		}
    	}


    webmail配置

    下来我们看看,如何搭建自己的邮件web端应用,经过调研筛选,这里我选择了Java开源的claros intouch2作为web端。

    下载claros intouch2,地址:http://www.claros.org/web/showProduct.do-id=1.html



    下载完成后我们把war包部署到tomcat6底下,启动tomcat,关于tomcat的安装和配置,这里我就不介绍了,大家自己去g.cn。

    需要修改D:\Program Files\apache-tomcat-6.0.28\apache-tomcat-6.0.28\webapps\intouch2\WEB-INF\config目录下的config.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <claros-config>
    	<!-- COMMON PARAMETERS -->
    	<common-params>
    		<charset>utf-8</charset>
    		<!-- the timezone is not functional at 2.0 -->
    		<server-timezone>Europe/Istanbul</server-timezone>
    		<!-- this directory must be writable (e.g. run a chmod 777 on it) -->
    		<tmp-dir>/tmp</tmp-dir> 
    		<!-- th e following two is in MB's-->
    		<max-attachment-size>5</max-attachment-size>
    		<max-mail-size>10</max-mail-size>
    		<title>Claros inTouch 2.1</title>
    		<!-- We recommend running spamassasin. -->
    		<spam-check-enabled>false</spam-check-enabled>
    		<!-- valid values are: da, de, en, fr, it, pt_br, pl, sk, tr, vi, zh_cn_utf8 -->
    		<default-lang>en</default-lang>
    		<!-- this is the default rss feed. users can set their own -->
    		<rss-feed>http://rss.cnn.com/rss/cnn_topstories.rss</rss-feed>
    	</common-params>
    
    	<!-- CHAT SERVER SETUP -->
    	<!-- if you have a jabber server with transports running such as 
    		the MSN, yahoo, icq, aol transports the following transport 
    		domains must be set. If you don't have your own jabber server
    		or not running transports omit the following settings.
    	-->
    	<chat>
    		<default-domain>claros.org</default-domain>
    		<msn-transport>msn.claros.org</msn-transport>
    		<yahoo-transport>yahoo.claros.org</yahoo-transport>
    		<icq-transport>icq.claros.org</icq-transport>
    		<aol-transport>aol.claros.org</aol-transport>
    	</chat>
    
    	<!-- MAIL SERVER SETUP -->	
    	<servers>
    		<server>
    			<!-- give any name you desire -->
    			<shortname>jwdstef.com</shortname>
    			<!-- your imap/pop3 server ip/dns -->
    			<fetch-server>jwdstef.com</fetch-server>
    			<fetch-server-port>1130</fetch-server-port>  
                <fetch-protocol>pop3</fetch-protocol>  
                <fetch-ssl>false</fetch-ssl>  
      
                <smtp-server>jwdstef.com</smtp-server>  
                <smtp-server-port>25</smtp-server-port>  
                <smtp-authenticated>true</smtp-authenticated>  
                <smtp-ssl>false</smtp-ssl>  
    		
    			<folder-namespace></folder-namespace>
    		</server>
    	</servers>
    
    	<!-- THE DATABASE SETUP -->
    	<!-- 
    		Please note that DB setup is essential to work. There is a intouch-mysql file in the SQL directory
    		of the zip file. Please create a database and dump the sql file to the db. 
    		
    		mysqladmin -u root -p create intouch
    		mysql -u root -p intouch < intouch-mysql.sql
    	 -->
    	<db-config>
    		<db>
    			<!-- do not change the term file!!! -->
    			<id>file</id>
    			<!-- the connection url for the JDBC connection -->
    			<database>jdbc:mysql://localhost:3306/intouch</database>
    			<!-- the connection class -->
    			<driver>com.mysql.jdbc.Driver</driver>
    			<!-- the user with read/write/delete/update/select permission to the database  -->
    			<login>root</login>
    			<!-- the plain text password -->
    			<password>123</password>
    		</db>
    	</db-config>
    </claros-config>

    启动后我们访问Intouch。

    访问成功!这样我们的web客户端也搭建完成。


    展开全文
  • Apache James 搭建自己的邮件服务器

    千次阅读 2017-12-30 18:11:52
    ...中小企业是否可以免费拥有自己的邮件系统,...答案是肯定的,可以,Java开源的邮件系统很多,经过筛选,调研最终我们选择用James来搭建自己的邮件系统。接下来我们来看看window7环境下如何用James来搭建邮件系


    原文 address:http://blog.csdn.net/jwdstef/article/details/39495097



    中小企业是否可以免费拥有自己的邮件系统,而不是去购买腾讯,163的企业邮箱。答案是肯定的,可以,Java开源的邮件系统很多,经过筛选,调研最终我们选择用James来搭建自己的邮件系统。接下来我们来看看window7环境下如何用James来搭建邮件系统:

           Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写。James 是100%基于Java的电子邮件服务器。它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。

    前期准备

    1.Jdk1.6 需要配置Java环境变量,这个就不在这里详细介绍如何配置了。

    2.James运行文件,下载地址http://james.apache.org/download.cgi



    下载完成后直接解压,解压后找到D:\X-EI\apache-james-2.3.2\james-2.3.2\bin目录下的run.bat文件,就可以启动james邮件服务器了。

             ps:如果James用到的端口被占用,可能启动的时候会报错,然后一闪而过,这个时候我们可以去修改James的POP3,SMTP,NNTP协议的端口,他们三个默认的端口为110,25,119.这三个协议我们可能见的比较多,但是你是否了解他们都代表什么意思呢,既然我们提到了这三个协议,那么我们就来看看这三个协议代表什么意思。

    • POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件
    • SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件
    • NNTP(Network News Transport Protocol),中文释义:(RFC-977)网络新闻传输协议。这是一个主要用于阅读和张贴新闻文章(俗称为“帖子”,比较正式的是“新闻组邮件”)到Usenet上的Internet应用协议,也负责新闻在服务器间的传送。NNTP用于向Internet上NNTP服务器或NNTP客户(新闻阅读器)发布网络新闻邮件的协议,提供通过Internet使用可靠的基于流的新闻传输,提供新闻的分发、查询、检索和投递。NNTP还专门设计用于将新闻文章保存在中心数据库的服务器上,这样用户可以选择要阅读的特定条目,还提供过期新闻的索引、交叉引用和终止。

    归纳下就是pop3是收邮件的协议,smtp是发邮件的协议,nntp是新闻协议。

    如何修改James这几个协议的端口

    找到目录D:\X-EI\apache-james-2.3.2\james-2.3.2\apps\james\SAR-INF底下的config.xml文件,用editplus或者其他编辑器打开文件,ctrl+f搜索pop3
    1. <pop3server enabled="true">  
    2.     <!-- POP3协议端口 -->  
    3.     <port>1130</port>  
    4.     <handler>  
    5.        <helloName autodetect="false">jwdstef.com</helloName>  
    6.        <connectiontimeout>120000</connectiontimeout>  
    7.     </handler>  
    8.  </pop3server>  
          我这里把原来的110端口修改成1130端口了,其他的两个端口修改也一样。
    1. <smtpserver enabled="true">  
    2.       <!-- SMTP协议端口 -->  
    3.       <port>25</port>  
    4.       <handler>       
    5.          <helloName autodetect="false">jwdstef.com</helloName>  
    6.          <connectiontimeout>360000</connectiontimeout>  
    7.          <authRequired>true</authRequired>  
    8.          <authorizedAddresses>192.168.0.0/255.255.255.0,127.0.0.0/8</authorizedAddresses>  
    9.          <maxmessagesize>0</maxmessagesize>  
    10.       </handler>  
    11.    </smtpserver>  

    1. <nntpserver enabled="true">  
    2.      <!-- NNTP协议端口 -->  
    3.      <port>119</port>  
    4.      <handler>  
    5.         <helloName autodetect="false">jwdstef.com</helloName>  
    6.         <connectiontimeout>120000</connectiontimeout>  
    7.         <authRequired>false</authRequired>  
    8.      </handler>  
    9.   </nntpserver>  

    我们修改完这个几个端口后,就可以顺利启动James服务了。



    配置服务


    默认配置启动James服务,只能给内网发送邮件,我们的要求是可以给外网的其他邮箱发邮件,比如163,qq,sina等邮箱发送邮件,那么我们必须修改James默认配置,接下来我们就来看看如何修改
    在D:\X-EI\apache-james-2.3.2\james-2.3.2\apps\james\SAR-INF下打开config.xml文件,找到
    1. <postmaster>Postmaster@localhost</postmaster>  
    2.       <servernames autodetect="true" autodetectIP="true">  
    3.          <servername>localhost</servername>  
    4.       </servernames>  
    修改localhost为你自己的域名,假如我们的域名是jwdstef.com,那么修改完成为:
    1. <postmaster>Postmaster@jwdstef.com</postmaster>  
    2.       <servernames <span style="color:#cc0000;">autodetect="false" autodetectIP="false"</span>>  
    3.          <servername>jwdstef.com</servername>  
    4.       </servernames>  
    修改dns服务,打开cmd,执行ipconfig /all 找到自己的DNS服务


    1. <servers>  
    2.          <!--Enter ip address of your DNS server, one IP address per server -->  
    3.          <!-- element. -->  
    4.          <server>mail.126.com</server>  
    5.           <server>smtp.163.com</server>  
    6.           <server>202.106.195.68</server>  
    7.            <server>192.168.1.98</server>  
    8.           <server>jwdstef.com</server>  
    9.           
    10.       </servers>  
    11.       <autodiscover>false</autodiscover>  
    12.       <authoritative>false</authoritative>  
    找到
    1. <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">   
    2.     <processor> relay-denied </processor>   
    3.     <notice>550 - Requested action not taken: relaying denied</notice>   
    4. </mailet>  

    将其注释掉。并且开启SMTP Server 身份验证,打开
    1. <span style="font-family:Microsoft YaHei;"><authRequired>true</authRequired></span>  
    打开后邮箱访问需要帐号验证,这样保证邮箱的安全性。
    James 邮件用户的用户信息默认保存在apps\james\var\users 目录下,通过修改配置文件apps\james\SAR-INF\config.xml,可以把用户信息保存到数据库中,
    配置方法如下
    找到
    1. <users-store>  
    2.      <repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">  
    3.         <destination URL="file://var/users/"/>  
    4.      </repository>  

    改为
    1. <users-store>  
    2.         
    3.       <repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://intouch/users">  
    4.          <sqlFile>file://conf/sqlResources.xml</sqlFile>  
    5.       </repository>  
    6.   
    7.    </users-store>  

    1. 通过修改用户的存储介质从file变成了db,db://intouch/users 中intouch是数据库的名字,users是邮件系统存储用户的表名  
    然后我们需要让邮件信息也保存在数据库,邮件信息的保存需要修改

    1. 找到<inboxrepository>项, 默认是<repository destinationurl="file://var/mail/inboxes/" type="mail">   
    2. 屏蔽掉,在它下面有个例子<repository destinationurl="db://maildb/inbox/" type="mail">,激活它.  
    3. 然后是spool,找到<spoolrepository>将默认屏蔽掉.     
    4. 激活<repository   destinationurl="db://maildb/spool/spool"   type="spool"/>    
    5. 这时候数据库中会自动建两个表:spool和inbox;spool是临时表,只要通过邮件服务器的邮件,不管是发,收,都会存到这个表里。存入的时候邮件有个状态:message_state,状态的值有几种,transe..span,root等第一个表示正在传,当传完后邮件服务器会自动删除这条邮件(此功能可配置,后面有介绍,通过改删除邮件的SQL可屏蔽此功能);当接收一个邮件时,也是先放在spool表里。然后往inbox表里转存;  

    我这里使用的数据库是Mysql,首先我在mysql里面创建好数据库intouch,找到<data-source>
    1. <data-source name="intouch" class="org.apache.james.util.dbcp.JdbcDataSource">  
    2.          <driver>com.mysql.jdbc.Driver</driver>  
    3.          <dburl>jdbc:mysql://localhost/intouch?autoReconnect=true</dburl>  
    4.          <user>root</user>  
    5.          <password>123</password>  
    6.          <max>20</max>  
    7.       </data-source>  
    配置好数据库连接。然后将对应数据库的jar包放到D:\X-EI\apache-james-2.3.2\james-2.3.2\lib下
    这样James的数据库连接就配置好了,启动James服务,我们会看到mysql数据库intouch库里面多了一个users表。

    我们还需要配置一个地方,修改c:/windows/system32/drivers/etc/hosts 文件,增加一个地址映射。
    1. 127.0.0.1 jwdstef.com  

    以上配置完成后,James邮箱所有配置完成。

    接下来我们需要登录邮件服务器,去增加用户,发送邮件,接收邮件。

    执行CMD,打开命令窗口,执行命令telnet jwdstef.com 4555,
    1. JAMES Remote Administration Tool 2.3.1  
    2. Please enter your login and password  
    3. Login id:  
    4. root  
    5. Password:  
    6. root  
    7. Welcome root.HELP for a list of commands  

    这里的4555端口是默认的,为了安全,我们最好修改下这个端口,还有登录的用户名和密码,最好也修改了。修改的位置
    1. <remotemanager enabled="true">  
    2.     <!--服务连接端口-->  
    3.       <port>4555</port>  
    4.       <handler>  
    5.          <helloName autodetect="false">jwdstef.com</helloName>  
    6.          <administrator_accounts>  
    7.             <!--服务连接管理员帐号密码-->  
    8.             <account login="root" password="root"/>  
    9.          </administrator_accounts>  
    10.          <connectiontimeout> 60000 </connectiontimeout>  


    登录成功后,我们可以添加用户,命令如下:
    adduser 帐号 密码



    完成配置后,我们增加了用户,但是如何收发邮件呢,通过命令去收发邮件肯定不可能,所以我们需要一个webmail来收发邮件,我们可以自己搭建一个webmail客户端应用,也可以使用foxmail等邮件客户端软件。

    我们先看看如何配置foxmail,使其可以连接到我们刚才搭建的邮件服务器,完成邮件的收发。

    打开foxmail进入设置页面,添加账号


    jwdstef这个用户是我在James服务后台通过命令 adduser jwdstef jd1增加的。配置完成后,我们就可以收发邮件了。我们来试试给163的邮箱发一封邮件



    登录163邮箱



    收到邮件,说明我们的邮件服务器配置成功了!

    如果还不能成功发送,接收,采取如下暴力配置:

    ①、查找替换所有的 localhost为域名

    ②、查找所有autodetect属性,修改为false。autodetectIP也设为false.

    查找所有myMailServer,替换为域名。

    附件大小配置

    整合了mysql,james 对附件大小的限制是使用mysql对行记录的限制来实现的。mysql在默认配置配置情况下默认是1M

    修改mysql所在安装目录的my.ini 增加max-allowed-packet=64M(附件大小) 

    收附件的时候,会遇到收不到超过10m附件的情况,一个是前面说的mysql字段大小限制,还有一个会有jvm虚拟内存的限制,因为默认16m的虚拟内存是不够的,要在james中修改。这里有两种修改方法: 


    1)在run.bat中加入set JAVA_OPTS=“-Xms32m -Xmx512m -Xss512m” 并启动 
    2)在conf/wrapper.conf修改并通过服务启动

    wrapper.java.initmemory=64 
    wrapper.java.maxmemory=512

    如果想正常收发邮件,请确保好helo或ehlo名,并对自己的mx地址做好dns反向解析,就可以基本保证全网收发.

    James用户密码的加密方式

    james 用户密码所用的加密方式是sha加密

    1. /** 
    2.      * 可以用于 md5 或者 sha 加密 
    3.      *  
    4.      * @param pass 
    5.      *            要加密的明文 
    6.      * @param algorithm 
    7.      *            加密方式 (md5或 sha) 
    8.      * @return 
    9.      * @throws NoSuchAlgorithmException 
    10.      */  
    11.     public static String digestString(String pass, String algorithm)   
    12.         throws NoSuchAlgorithmException {  
    13.   
    14.         MessageDigest md;  
    15.         ByteArrayOutputStream bos;  
    16.   
    17.         try {  
    18.             md = MessageDigest.getInstance(algorithm);  
    19.             byte[] digest = md.digest(pass.getBytes("iso-8859-1"));  
    20.             bos = new ByteArrayOutputStream();  
    21.             OutputStream encodedStream = MimeUtility.encode(bos, "base64");  
    22.             encodedStream.write(digest);  
    23.             return bos.toString("iso-8859-1");  
    24.         } catch (IOException ioe) {  
    25.             throw new RuntimeException("Fatal error: " + ioe);  
    26.         } catch (MessagingException me) {  
    27.             throw new RuntimeException("Fatal error: " + me);  
    28.         }  
    29.     }  


    webmail配置

    下来我们看看,如何搭建自己的邮件web端应用,经过调研筛选,这里我选择了Java开源的claros intouch2作为web端。

    下载claros intouch2,地址:http://www.claros.org/web/showProduct.do-id=1.html



    下载完成后我们把war包部署到tomcat6底下,启动tomcat,关于tomcat的安装和配置,这里我就不介绍了,大家自己去g.cn。

    需要修改D:\Program Files\apache-tomcat-6.0.28\apache-tomcat-6.0.28\webapps\intouch2\WEB-INF\config目录下的config.xml文件

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <claros-config>  
    3.     <!-- COMMON PARAMETERS -->  
    4.     <common-params>  
    5.         <charset>utf-8</charset>  
    6.         <!-- the timezone is not functional at 2.0 -->  
    7.         <server-timezone>Europe/Istanbul</server-timezone>  
    8.         <!-- this directory must be writable (e.g. run a chmod 777 on it) -->  
    9.         <tmp-dir>/tmp</tmp-dir>   
    10.         <!-- th e following two is in MB's-->  
    11.         <max-attachment-size>5</max-attachment-size>  
    12.         <max-mail-size>10</max-mail-size>  
    13.         <title>Claros inTouch 2.1</title>  
    14.         <!-- We recommend running spamassasin. -->  
    15.         <spam-check-enabled>false</spam-check-enabled>  
    16.         <!-- valid values are: da, de, en, fr, it, pt_br, pl, sk, tr, vi, zh_cn_utf8 -->  
    17.         <default-lang>en</default-lang>  
    18.         <!-- this is the default rss feed. users can set their own -->  
    19.         <rss-feed>http://rss.cnn.com/rss/cnn_topstories.rss</rss-feed>  
    20.     </common-params>  
    21.   
    22.     <!-- CHAT SERVER SETUP -->  
    23.     <!-- if you have a jabber server with transports running such as   
    24.         the MSN, yahoo, icq, aol transports the following transport   
    25.         domains must be set. If you don't have your own jabber server  
    26.         or not running transports omit the following settings.  
    27.     -->  
    28.     <chat>  
    29.         <default-domain>claros.org</default-domain>  
    30.         <msn-transport>msn.claros.org</msn-transport>  
    31.         <yahoo-transport>yahoo.claros.org</yahoo-transport>  
    32.         <icq-transport>icq.claros.org</icq-transport>  
    33.         <aol-transport>aol.claros.org</aol-transport>  
    34.     </chat>  
    35.   
    36.     <!-- MAIL SERVER SETUP -->      
    37.     <servers>  
    38.         <server>  
    39.             <!-- give any name you desire -->  
    40.             <shortname>jwdstef.com</shortname>  
    41.             <!-- your imap/pop3 server ip/dns -->  
    42.             <fetch-server>jwdstef.com</fetch-server>  
    43.             <fetch-server-port>1130</fetch-server-port>    
    44.             <fetch-protocol>pop3</fetch-protocol>    
    45.             <fetch-ssl>false</fetch-ssl>    
    46.     
    47.             <smtp-server>jwdstef.com</smtp-server>    
    48.             <smtp-server-port>25</smtp-server-port>    
    49.             <smtp-authenticated>true</smtp-authenticated>    
    50.             <smtp-ssl>false</smtp-ssl>    
    51.           
    52.             <folder-namespace></folder-namespace>  
    53.         </server>  
    54.     </servers>  
    55.   
    56.     <!-- THE DATABASE SETUP -->  
    57.     <!--   
    58.         Please note that DB setup is essential to work. There is a intouch-mysql file in the SQL directory  
    59.         of the zip file. Please create a database and dump the sql file to the db.   
    60.           
    61.         mysqladmin -u root -p create intouch  
    62.         mysql -u root -p intouch < intouch-mysql.sql  
    63.      -->  
    64.     <db-config>  
    65.         <db>  
    66.             <!-- do not change the term file!!! -->  
    67.             <id>file</id>  
    68.             <!-- the connection url for the JDBC connection -->  
    69.             <database>jdbc:mysql://localhost:3306/intouch</database>  
    70.             <!-- the connection class -->  
    71.             <driver>com.mysql.jdbc.Driver</driver>  
    72.             <!-- the user with read/write/delete/update/select permission to the database  -->  
    73.             <login>root</login>  
    74.             <!-- the plain text password -->  
    75.             <password>123</password>  
    76.         </db>  
    77.     </db-config>  
    78. </claros-config>  

    启动后我们访问Intouch。

    访问成功!这样我们的web客户端也搭建完成。

    展开全文
  • 邮箱注册登录 手机验证码注册登录 前台三种挂号方式 后台对前台数据进行管理 医生的排班管理 ,忘记备份全部数据库,只备份了部分语句了,不过论文里有写数据表的详细设计,可以自己搭建一个;要的人多的话我有时间...
  • centos搭建postfix

    2019-04-04 17:28:11
    自己java swing做了个简单的聊天系统,本意是给身边认识的...事前准备,如果,你是想在局域网下搭建这个邮箱系统,用于业务故障发短信提醒,那么你就没有必要去购买域名,域名是用于广域网你想发邮件给其他邮件厂...
  • 开发的java web 项目在window系统下发送邮件功能正常,但是部署到linux服务器后发送一封邮件要耗时4,5分钟才能发送...(使用的是自己搭建邮箱服务器window版本)。查询日志发现耗时在与邮箱服务器建立连接的阶段。
  • application.properties中的邮箱配置要改成自己,否则不能注册系统账号 使用沙箱环境的支付宝才能扫码支付,application.properties中的my.ip要改成自己,有项目名还要加项目名,否则支付成功回调出错 运行项目 方法...
  • 注意:邮件发送需要小伙伴小伙伴自己配置授权码,配置方式参考下面的文档,配置文件在src/main/java/org/sang/common/EmailRunnable.java 相关文档: Spring Boot 中使用 Freemarker 邮件模板生成邮件 Java 中...
  • 1、Java本身提供了JavaMail标准以实现邮件的处理,同时用户也可以搭建属于自己的邮件服务器或者直接使用各个邮箱系统实现邮件的发送处理。这里使用QQ邮箱系统进行服务整合。 登录QQ邮箱,进入邮箱设置页面,找到邮件...
  • 注意:邮件发送需要小伙伴小伙伴自己配置授权码,配置方式参考下面的文档,配置文件在src/main/java/org/sang/common/EmailRunnable.java 相关文档: Spring Boot 中使用 Freemarker 邮件模板生成邮件 Java 中...
  • 环境搭建(QQ群内有“zheng环境搭建系统部署文档.doc”) 开发工具: MySql: 数据库 jetty: 开发服务器 Tomcat: 应用服务器 SVN|Git: 版本管理 Nginx: 反向代理服务器 Varnish: HTTP加速器 IntelliJ IDEA: 开发...
  • 我们的使命是用Java开发世界上最好的、高性能的、安全的、开源的(重点)数字货币交易系统。(请忽略我们的牛逼,因为牛逼吹得多了,可能慢慢就真的牛逼了) 我们希望通过开源社区的力量能相互交流,共同改进。 ...
  • 2.0 使用 GitHub Pages 进行发布博客,我提供了一个公共的仓库(已在配置文件中)进行发布博客,但推荐使用自己搭建的GitHub Pages,使用公用仓库发布博客,可能由于博客初始化过久而导致程序超时,审核失败 1.JDK1.8 2.0...
  • 注意:邮件发送需要小伙伴小伙伴自己配置授权码,配置方式参考下面的文档,配置文件在src/main/java/org/sang/common/EmailRunnable.java 相关文档: Spring Boot 中使用 Freemarker 邮件模板生成邮件 Java 中...
  • 单点登录源码

    2018-01-09 20:56:08
    单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ...## 环境搭建(QQ群内有“zheng环境搭建系统部署文档.doc”) #### 开发工具: ...
  • 请照顾好自己,周末病魔差点一套带走我。 敖丙我参加了蘑菇街年会,流了一晚上鼻血 曾经我们并肩作战,敬未来一杯,敬资本一杯 敖丙我写了一个新手都写不出的低级bug,被骂惨了。 敖丙的第一次相亲,还没开始,就...
  • 开源中国源码

    2019-04-22 16:23:38
    FlyCms 是一个类似知乎以问答为基础的完全开源的JAVA语言开发的社交网络建站程序,基于 Spring Boot+Bootstrap3+MyBatis+MYSQL+Solr+Ehcache 应用架构,专注于社区内容的整理、归类和检索,它集合了问答,digg,wiki...
  • Java版本:1.8 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf 开发工具:Idea 2017 版本管理工具:Maven 版本控制工具:GitHub 3.2 实现过程 3.2.1 商品首页实现 ...
  • 开源多域端到端对话系统平台、中文自然语言处理数据集、基于最新版本rasa搭建的对话系统、基于TensorFlow和BERT的管道式实体及关系抽取、一个小型的证券知识图谱/知识库、复盘所有NLP比赛的TOP方案、OpenCLaP:多...
  • 2.整体系统采用门户网站+后台管理+用户个人中心的方式搭建,门户网站展示博客内容以及博主介绍,后台管理用于编辑文章,查看反馈,管理评论留言。 3.使用阿里云OSS进行静态资源存储,以及CDN全站加速。 环境 ...
  • t:dgCol title="邮箱" field="email"></t:dgCol> <t:dgCol title="年龄" sortable="true" field="age"></t:dgCol> <t:dgCol title="工资" field="sex"></t:dgCol> <t:dgCol ...
  • O(∩_∩)O哈哈~,三少还有一个升级课程,是收费的,条件允许的小伙伴可以去参观一下《Java电商秒杀系统深度优化 从容应对亿级流量挑战》 另外要想真正学会我这个登录注册的Demo推荐你看几本书: 《Spring 实战(第...
  • ✅ RabiAPI:一个开箱即用的Java接口文档生成工具 - 更多介绍 2020年7月27号添加 Lenix(北京) - Github, 博客 ✅ PHP中文站:最专业的PHP资源网站:PHP教程, PHP中文手册, PHP开发工具, PHP框架文档大全!- ...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

java自己搭建邮箱系统

java 订阅