• 技术文章 >后端开发 >php教程

    Apache邮件发送配置

    2016-06-23 13:52:15原创846
    我想通过php发送邮件,下载了apache-james-2.3.2.tar,解压后点击run.bat秒退是什么情况?如果哪位大神有关于邮件服务器配置更好的方法请指教,先谢过咯


    回复讨论(解决方案)

    http://wenku.baidu.com/link?url=AKMpZxzuM0TRtMSqPKwiQeGYop-PNm1-KQKlS0y8AaWJXei2nGpqPDMeatPZOvosWKAPziWbsrs50LctmnXuueIoEQkzgnM0ghFg8OHvi7e

    那个我看过了,但James\bin文件夹下根本没有install文件,,不过还是谢谢你


    james安装与配置

    一、安装:
    1.环境要求:
    已安装Java平台,版本为j2sdk1.4.2,环境变量JAVA_HOME设为C:\j2sdk1.4.2;
    2.下载与运行:
    从Apache网站上下载得到一个压缩的文件james-2.1-bin.zip,大小为4.44M,将此包解压到C:\James\james-2.1下。
    运行分为两种方式:前台直接运行、作为后台服务运行;
    1>前台直接运行:
    在C:\James\james-2.1\bin下运行run.bat
    这是会出现:
    Using PHOENIX_HOME: C:\James\james-2.1
    Using PHOENIX_TMPDIR: C:\James\james-2.1\temp
    Using JAVA_HOME: C:\j2sdk1.4.2
    Phoenix 4.0.1
    James 2.1

    Remote Manager Service started plain:4555

    POP3 Service started plain:110

    SMTP Service started plain:25

    NNTP Service Disabled

    Fetch POP Disabled
    这是就表示James邮件服务以开启,不过Window下不能关闭控制台窗口,否者邮件服务会停止。如要克服此缺点必须使James邮件服务作为作为后台服务运行。
    停止前台运行按Ctrl+C,会出现:

    JVM exiting abnormally. Shutting down Phoenix.

    终止批处理操作吗(Y/N)?

    2>后台服务运行:

    将C:\James\james-2.1\conf目录下的wrapper.conf拷贝到C:\James\james-2.1\bin即包含wrapper.exe的目录下,运行:

    wrapper.exe -i C:\James\james-2.1\bin\wrapper.conf

    然后在控制面板中开启服务或重启即可。
    卸载后台服务:

    到C:\James\james-2.1\bin即包含wrapper.exe的目录下,运行:

    wrapper.exe -r C:\James\james-2.1\bin\wrapper.conf

    3.

    二、配置:

    1>服务器端配置(邮件服务器的名字假设叫EmailServer,服务器管理员名Admin)

    首先停止已开启的James邮件服务,然后打开文件C:\James\james-2.1\apps\james\SAR-INF\config.xml。

    在config.xml文件中,找到Postmaster@localhost,把此项改为Admin@EmailServer,同时,找到位于


    -

    -

    -

    -

    -
    localhost



    的localhost,把此项改为EmailServer。这样就可以让其它机器也能访问邮件系统。
    DNS配置:找到同上文件中段中的如下程序段:
    -
    -
    -
    -
    -
    127.0.0.1



    false



    将127.0.0.1的位置填入DNS服务器的IP地址;
    修改管理员密码:

    找到同上文件中的段,如下程序段

    -

    -
    -



    将默认用户名root与密码root修改为需要的值
    修改telnet管理程序登录端口 :(默认为4555)

    找到同上文件中的段下的port如下程序段

    -

    4555

    -

    - 注释掉的,打开即可;记住把





    注释掉;

    通过修改,我们就把用户信息的存储介质从file改成了db,是指明了在db中的数据表结构及相关数据库信息。
    第四步:仍然是config.xml,找到项,默认内容为空,把此项内容修改为:


    org.gjt.mm.mysql.Driver
    jdbc:mysql://127.0.0.1/mail
    root

    20



    或打开文件下面实例的 注释

    是指MySQL的JDBC驱动,注意这个默认的是有问题的,要改成MySQL的驱动程序中Driver.class的路径,即:

    com.mysql.jdbc.Driver
    指数据库的访问路径,IP后的mail即MySQL中新建数据库名,接下来是用户名、密码及最大连接数。
    再次启动时,james将在mail数据库中自动创建有关用户的表格。
    至此,数据库配置完成,启动James,若正常无误,请通过telnet添加一个新用户,比如adduser holen 123456,然后检查MySQL中的mail数据库,下面将有一个表users,这是James根据file://conf/sqlResources.xml的内容创建的。

    通过以上配置,James的用户信息就可以保存在数据库中了。

    注:修改以前的账户会丢失!







    一、FAQ

    1、 在启动james时,提示POP3或SMTP不能使用?
    请检查一下,看“管理工具?>服务”里面,是不是启动了别的邮件服务器,已将110或25端口占用了。

    实例:

    james前台直接运行时出错:

    ERROR 2005-08-25 08:58:38.642 [Phoenix.] (): Component named "smtpserver" failed to pass through the Initialization stage. (Reason: java.net.BindException: Address already in use: JVM_Bind).

    ERROR 2005-08-25 08:58:38.652 [Phoenix.] (): There was an error running phase "startup" for Block named "smtpserver". (Reason: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: java.net.BindException: Address already in use: JVM_Bind).).

    org.apache.excalibur.containerkit.lifecycle.LifecycleException: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: java.net.BindException: Address already in use: JVM_Bind).

    原因:

    james默认设置不允许在同一台机器上跑两个邮件服务器进程。必须关掉另一个!



    检测方法:

    console界面下:

    d:> telnet 主机名 25(或110)

    如果可以登录,出现

    220 主机名 Microsoft ESMTP MAIL Service, Version: 6.0.2600.1106 ready at Thu,

    25 Aug 2005 14:14:36 +0800

    则说明此机器上已有一台邮件服务器在运行。



    解决:

    检查Windows上运行服务:

    跨网传输电子邮件的服务Simple Mail Transfer Protocol (SMTP),是否启动

    如启动关闭之!

    2、 JAVA_HOME找不到?

    请在run.bat中指定JAVA_HOME,若还不行,请在“我的电脑?>系统?>高级?>环境变量”中添加一项JAVA_HOME。

    3、 服务器启动正常,但客户端不能收发邮件?

    请检查客户端配置是否正常,参照前面所讲,另外,请检查james下的config.xml,是否把localhost改成了机器名。

    4、修改为数据库储存后,james启动出错:

    一般是数据库驱动有错。检查一下


    org.gjt.mm.mysql.Driver
    jdbc:mysql://127.0.0.1/mail
    root

    20


    org.gjt.mm.mysql.Driver是否对

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:邮件 apache 发送 配置
    上一篇:PHP错误报告设置不生效? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 工具包分享:PHP实现滑块验证图片• 请教QQ互联的代码是如何写的? • 没有上载的分数了,vip次数也用完了啊 • PHP登录跳转,该怎么处理 • 注册信息添加到数据库,该怎么处理
    1/1

    PHP中文网