提交后,信息应发送至电子邮件[关闭]

2024-02-15

我的网页上有一个“查询”选项卡。

查询选项卡包含以下信息:

  1. Name
  2. Email
  3. Number
  4. Details

单击“提交”按钮后,上述详细信息应直接发送到电子邮件地址。我已在联系我们页面中提供了我的电子邮件地址。 但我不知道如何将查询中提到的信息发送到我的电子邮件地址。


JavaMail api 会有所帮助。从以下位置下载http://www.oracle.com/technetwork/java/index-138643.html http://www.oracle.com/technetwork/java/index-138643.html

//将代码更改为您的要求。这项工作非常适合我。

索引.html

<form action="EmailSendingServlet" method="post">
  To:<input type="text" name="recipient"  /><br/>
  Subject:<input type="text" name="subject"/><br/>
  Message:<input type="text" name="content"/><br/>
  <input type="submit" value="Send Mail" />
</form>

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">


    <!-- SMTP settings -->
    <context-param>
        <param-name>host</param-name>
        <param-value>smtp.gmail.com</param-value>
    </context-param>

    <context-param>
        <param-name>port</param-name>
        <param-value>587</param-value>
    </context-param>

    <context-param>
        <param-name>user</param-name>
        <param-value>yourmailID</param-value>
    </context-param>

    <context-param>
        <param-name>pass</param-name>
        <param-value>yourpassword</param-value>
    </context-param>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

确保改变你的邮箱ID发送至有效的发件人邮件 ID 并你的密码到正确的密码。

由于我的文件位于文件夹 notification/email/ 中,因此我已包含该包。对您的代码进行适当的更改。

EmailSendingServlet.java

package notify.email;
import java.util.*;
import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.xml.internal.fastinfoset.sax.Properties;
@WebServlet("/EmailSendingServlet")
public class EmailSendingServlet extends HttpServlet {
    private String host;
    private String port;
    private String user;
    private String pass;
    //private String proxyHost;
    //private String proxyPort;

    public void init() {
        // reads SMTP server setting from web.xml file
        ServletContext context = getServletContext();
        host = context.getInitParameter("host");
        port = context.getInitParameter("port");
        user = context.getInitParameter("user");
        pass = context.getInitParameter("pass");
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // reads form fields
        String recipient = request.getParameter("recipient");
        String subject = request.getParameter("subject");
        String content = request.getParameter("content");
        /*proxyHost="127.0.0.1";
        proxyPort="8080";
        java.util.Properties proxySet = System.getProperties();
        proxySet.put("http.proxyPort", proxyPort);
        proxySet.put("http.proxyHost", proxyHost);*/
        String resultMessage = "";

        try {
            EmailUtility.sendEmail(host, port, user, pass, recipient, subject,
                    content);
            resultMessage = "The e-mail was sent successfully";
        } catch (Exception ex) {
            ex.printStackTrace();
            resultMessage = "There were an error: " + ex;
        } 
    }
}

注释的行用于通过以下方式发送邮件代理服务器.

电子邮件实用程序.java

package notify.email;

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailUtility {
    public static void sendEmail(String host, String port,
            final String userName, final String password, String toAddress,
            String subject, String message) throws AddressException,
            MessagingException {

        // sets SMTP server properties
        Properties properties = new Properties();
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", port);
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");

        // creates a new session with an authenticator
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(userName, password);
        }
    };

    Session session = Session.getInstance(properties, auth);

    // creates a new e-mail message
    Message msg = new MimeMessage(session);

    msg.setFrom(new InternetAddress(userName));
    InternetAddress[] toAddresses = { new InternetAddress(toAddress) };
    msg.setRecipients(Message.RecipientType.TO, toAddresses);
    msg.setSubject(subject);
    msg.setSentDate(new Date());
    msg.setText(message);

    // sends the e-mail
    Transport.send(msg);

    }
}

请按照注释来理解代码流程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提交后,信息应发送至电子邮件[关闭] 的相关文章

  • 隐藏/显示 DIV - 将当前效果更改为淡入淡出

    我目前正在使用网络教程中找到的以下代码来显示 隐藏 DIV 效果很好 但不喜欢这种效果 希望 DIV 淡入 淡出 或者更平滑的东西 目前 DIV 是从右上角增长的 我该如何调整代码来做到这一点 你可以在这里看到它http jsfiddle
  • Sequelize.js 中的自定义或覆盖连接

    我需要使用创建自定义连接条件Sequelize js http sequelizejs com使用 MSSQL 具体来说 我需要加入TableB基于一个COALESCE中的列的值TableA and TableB并最终得到这样的连接条件 L
  • Google reCaptcha 永远加载

    我在我的网站上使用 Google 的 reCaptcha 2 0 它曾经运行良好 但自从我向公众开放我的网站并获得了更多用户后 recaptcha 不再适用于大多数用户 它加载得很好 但一旦用户单击 我不是机器人 复选框 它会永远加载并且从
  • JavaScript 中的“new”关键字是什么?

    The newJavaScript 中的关键字第一次遇到时可能会很混乱 因为人们倾向于认为 JavaScript 不是面向对象的编程语言 它是什么 它解决什么问题 什么时候合适 什么时候不合适 它做了 5 件事 它创建一个新对象 这个对象的
  • 为什么“事件”在 Chrome 中全局可用,而在 Firefox 中则不然?

    在回答另一个问题时 出现了一个与event对象在匿名函数中可用 无需传入 在 Chrome 中 下面的代码工作正常 但 Firefox 会抛出错误 document ready function uspsSideboxTrackingClo
  • 如何为 HTML5 音频元素制作加载栏?

    我正在尝试为 HTML5 音频元素制作一个加载栏 显示加载 缓冲的百分比 对于视频标签 可以使用以下方法进行计算 video buffered end 0 video duration 但我无法让它与音频标签一起使用 它只是返回一个固定值
  • React/Redux bundle.js 太大

    我有一个小型的 React 项目 Webpack生成的bundle js大小为6 3Mb 如何将大小减小到 github webpack config js module exports devtool inline source map
  • Typescript:如何在自定义过滤器中使用角度 $filter

    如何在自定义过滤器中使用 Angular filter 如何注入 filter依赖 module Filters export class CustomFilter public static Factory return function
  • 在 IE10 中禁用捏合放大

    在 IE10 触摸模式下 我希望仅使页面的特定部分可缩放 其余的不应该 我找到了这个 http msdn microsoft com en US library ie hh772044 aspx http msdn microsoft co
  • Rails 递归地包含 javascripts 资源文件夹

    我了解如何将一个 JavaScript 文件添加到 Rails 资产管道中 只需添加 require filename 到 application js 但是如何在一个文件夹下包含多个 javascript 文件 vendor assets
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • 删除 Laravel Mix 中的临时文件

    我想在 laravel mix 构建期间或之后删除临时构建文件 这是我目前拥有的一些代码 但是del不工作 const mix require laravel mix const del require del compile sass i
  • 浏览器默认区域设置 - Intl.DateTimeFormat 与 navigator.language

    在对网站进行编码并格式化日期时 我想使用用户在浏览器中设置的区域设置 例如 如果用户定制了他们的chrome settings languages在 Chrome 中设置为非默认值 这就是我想要使用的值 但是 当我在此类浏览器的控制台中运行
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • JavaScript 访问密码字段值是否被视为存在安全风险?

    如果安全 正确地存储密码是良好的风格和安全性 那么对于要求用户输入密码的网页来说不应该也是如此吗 考虑这个例子
  • PhantomJS 网页内存消耗?

    是否有一种编程方式 因为我想在运行时自动执行 方式来查看网页在通过 PhantomJs 运行时使用了多少内存 我也在使用 casperjs 如果这有帮助的话 我已经搜索了很多但没有找到任何方法 PhantomJs 使用 QtWebKit 因
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 在 JSP 或 Javascript 中清除浏览器缓存中的图像

    我正在为一所大学开发JSP Web 应用程序 用户页面中显示人员图片 用户注销后如何从网络浏览器缓存中清除这张图片 使用 JSP 或 JavaScript 那是不可能的 最好的选择是完全禁用相关资源的缓存 创建一个filter https
  • 使用 JQuery 预填充选择字段的下拉选项验证

    我有这个 JQuery 片段来防止选择已在另一个字段中选择的下拉选项 var coll select name service on change function coll each function var val this value

随机推荐

  • 混淆汇编和反射

    我想通过以下方式混淆我的程序集文件 dll exe 点模糊器 我的问题是 如果我这样做 我仍然可以使用这些程序集中的类和类型的原始名称 我的意思是混淆之前的名称 并使用System Reflection与他们合作的方法 如果您需要更多详细信
  • 在SQL中查找最长的连续递增数字序列

    对于这个例子 假设我有一个包含两个字段的表 AREA varchar 30 and OrderNumber INT 该表有以下数据 AREA OrderNumber Fontana 32 Fontana 42 Fontana 76 Font
  • 跟踪编译器中 AST 节点的源位置 (ocaml)

    我正在使用 ocamllex yacc 在 ocaml 中编写编译器 一切进展顺利 但我遇到了设计问题 对于我创建的每个 AST 节点 最好能获得有关源代码中该节点的行 字符位置的信息 这对于稍后向用户提供错误消息很有用 现在 我可以向我的
  • kubectl 无法连接到服务器:x509:由未知机构签名的证书

    我在一台机器 Windows 上运行 kubectl 时遇到错误 k8s集群运行在CentOs 7 kubernetes cluster 1 7上 师傅 工人 这是我的 kube config apiVersion v1 clusters
  • Chrome 移动设备上的字体问题,字体大小呈现得更大

    我在使用 Chrome 移动设备时遇到问题 某些文本的字体大小比 CSS 中的字体大小大 我检查了开发人员工具 发现这些文本继承了正确的字体大小 但在计算样式中仍然渲染了 5px 大 我找到这个帖子修复 Mobile Safari iPho
  • mongodb - 查找具有最接近整数值的文档

    假设我有一个文档集合 其比率属性是浮点数 ratio 1 437 如何编写一个查询来查找与给定整数最接近的值的单个文档 而不使用驱动程序将它们全部加载到内存中并找到具有最小值的文档abs x ratio 有趣的问题 我不知道你是否可以在单个
  • 将 data.table 聚合到原始值间隔的行

    我有一些data table金额列如下 n 1e5 set seed 1 dt lt data table id 1 n amount pmax 0 rnorm n mean 5e3 sd 1e4 给出的中断向量如下 breaks lt a
  • 在数组中查找与另一种颜色最接近的颜色的最佳算法是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Ionic / Bower / cordova - 忽略构建文件

    我的项目结构如下 MyApp hooks platforms android ios www js css templates lib including all bower components 眼下 www lib目录正在占用21 8
  • 离线 3D 交互式饼图

    我想构建一个 3D 交互式饼图 首先我使用谷歌图表 但不幸的是这不能离线工作 我使用了 jpgraph jscharts 和 rgraph 中的图表 但没有达到我想要的效果 我想要一个图表 它必须是免费的 可以离线工作 并且与谷歌图表具有大
  • 通过 UILabel 文本的第一行将图像居中

    我想将图像居中到 UILabel 文本第一行的 Y 位置中心 我使用砌体来设置自动布局约束 如下所示 haveReadIndicatorImgView mas makeConstraints MASConstraintMaker make
  • 没有 Spring 的 Spring JDBC 模板

    是否有像 Spring JDBC Template 这样的 Java 库 具有相同质量的代码和文档以及类似的数据访问异常层次结构 但不依赖于其他 Spring 模块 根据 core beans context 模块http mvnrepos
  • java程序要求用户输入第二大和最大的数字

    java program that asks user to input a number and print the 1st and 2nd largest numbers import java util Scanner public
  • 类型双关语与联盟成员访问

    按照这个https stackoverflow com a 1812932 1814023 https stackoverflow com a 1812932 1814023 writing one member of union and
  • PHP 将 JSON 数据从 Android 插入 MySQL 数据库

    我有一个 Android 应用程序 它通过 HTTP POST 方法将数据发送到 PHP 脚本 并尝试解析数据以存储到 MySQL 中 Android 应用程序不是我编写的 但我可以访问下面包含的源代码 它发送打包为 JSON 数组的数据
  • 注解:通过注解限制对类的引用

    我认为这是不可能的 但也许我错了 所以我问你 是否可以 如果我定义一个仅接受扩展某些接口或类的类引用的注释 这是可能的 Class
  • 如何模拟第三方React Native NativeModules?

    组件正在导入包含本机模块的库 这是一个人为的例子 import React from react import View from react native import Answers from react native fabric e
  • foreach 中的 Stringbuilder 比 for 和 String.Join() 中的 Stringbuilder 在集合上更糟糕?

    在这里看到一个关于连接字符串的问题 我做了一些测试 并了解到在 foreach 中连接字符串比使用 for 循环和使用数组中的索引要慢 由于对数组进行边界检查 for 循环不应该更慢吗 对 strings i 进行边界检查 foreach
  • 将框架转换为库

    我想在 iOS 应用程序中使用下面链接中找到的框架 我让它在模拟器中工作 但经过一番挖掘后 您似乎无法在设备上使用框架 尤其是通过 App Store 分发时 如果我错了 请纠正我 https github com mirek YAML f
  • 提交后,信息应发送至电子邮件[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的网页上有一个 查询 选项卡 查询选项卡包含以下信息 Name Email Number Details 单击 提交 按钮后 上述详细信息