从表单发送电子邮件

Posted

技术标签:

【中文标题】从表单发送电子邮件【英文标题】:Sending email from a form 【发布时间】:2012-03-15 23:35:27 【问题描述】:

我在下面的代码中首先遇到了一个问题:

<form action="resultPage.jsp" >
    <br/>
    <br/>
    <br/>
    <h4>
        <label>subject</label> <input name="subject" type="text" value="subject" />
    </h4>
    <textarea rows="7" cols="40" name="comment" >comment</textarea>
    </br>
    <input type="submit"/>
</form>

然后我写下面的代码:

<%
    MailManager mailManager = new MailManager();
    String subject= request.getParameter("subject");
    String comment=request.getParameter("comment");
    if((request.getParameter("subject")!=null) && (request.getParameter("comment")!=null) )
        mailManager.sendMessage("send E-mail addrs","password","smtp.gmail.com","465", new String[]"receive addrs", subject,comment, "text/html");
%>

但我无法发送或接收任何电子邮件。

当我在没有 if 语句的情况下编写 mailManager.sendMessage() 时,我给出了一个异常 java.lang.NullPointerException

【问题讨论】:

这个 MailManager 类从何而来?看起来不像标准(Sun/Oracle 可交付成果中包含的标准)类。 提交前是否添加主题? 这个类我之前写过,导入到jsp页面 如果是你一开始写了这门课,你为什么不去看看课堂里哪里出了问题? 【参考方案1】:

显然,忽略 if 会导致 NullPointerException 的事实意味着缺少 commentsubject 参数中的一个或两个。

这表明问题出在表单上。

使用您浏览器的 Web 开发人员功能来准确找出正在发送到您的服务器的请求。看起来是 GET 请求,所以参数应该在请求 URL 中。

【讨论】:

例如,对于 Firefox,Tools>Web Developer 中有工具...或者您可以安装 Firebug 插件。其他浏览器也有类似的功能。阅读在线文档,查看菜单和首选项等。【参考方案2】:

大家好,我发现异常的解决原因是request.getParameter(t1)的对象没有被创建,所以有一个指向空对象的指针

为了防止这个错误,我们可以使用下面的代码:

<%    
    String str=request.getParameter("t1");
    if (str==null )
        str=0+"" ;
    int i=Integer.parseInt(str);
    out.print(i);
%>

【讨论】:

以上是关于从表单发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

创建电子邮件表单,用户在其中选择目标电子邮件并从自己的电子邮件中发送

从表单发送电子邮件

通过一次提交发送双表单,同时将电子邮件字段从第一个表单拉到第二个表单

如何从 PHP 表单发送带有附件的电子邮件?

从 html 表单发送带有 csv 附件的电子邮件

PHP:从表单中获取电子邮件并在单击按钮时发送它