从表单发送电子邮件
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 的事实意味着缺少 comment
或 subject
参数中的一个或两个。
这表明问题出在表单上。
使用您浏览器的 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);
%>
【讨论】:
以上是关于从表单发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
创建电子邮件表单,用户在其中选择目标电子邮件并从自己的电子邮件中发送