邮件未发送到Java中的相应用户

普里亚丹巴

我正在尝试向上传文件的各个用户发送邮件。我有一个process.jsp页面,在该页面中,用户将输入邮件ID,当用户单击“发送”时,将在文件上传时发送邮件。我已经编写了用于发送邮件的代码,但是它给出了类似错误的消息:null文件已成功上传到MySQL数据库,但邮件未发送。

这是我的process.jsp页面

<form action="SendMailAttachServlet" method="post" enctype="multipart/form-data">
  <input type="email" name="mailid" value="" required="" size="60" placeholder="Please enter your mail address" />
  <input type="submit" value="Send" />
  <table>

    <tr style="display:none">
      <td>Subject </td>
      <td><input type="text" name="subject" size="50" /></td>
    </tr>
    <tr style="display:none">
      <td>Content </td>
      <td><textarea rows="10" cols="39" name="content"></textarea> </td>
    </tr>
  </table>
</form>

注意:-我只需要两个字段,即一个文本字段用于邮件ID,另一个用于发送按钮。我不需要主题和内容字段

这是我的EmailUtility.java页面

package com.codejava.email;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class EmailUtility {
  /**
   * Sends an e-mail message from a SMTP host with a list of attached files.
   *
   */
  public static void sendEmailWithAttachment(String host, String port,
    final String userName, final String password, String toAddress
  )
  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");
    properties.put("mail.user", userName);
    properties.put("mail.password", password);

    // 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());

    // creates message part
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    //  messageBodyPart.setContent(message, "text/html");

    // creates multi-part
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);


    // sets the multi-part as e-mail's content
    msg.setContent(multipart);

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

}

这是我的SendMailAttachServlet.java文件

package com.codejava.email;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

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

@WebServlet("/SendMailAttachServlet")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
  maxFileSize = 1024 * 1024 * 10, // 10MB
  maxRequestSize = 1024 * 1024 * 50) // 50MB
public class SendMailAttachServlet extends HttpServlet {

  private String host;
  private String port;
  private String user;
  private String pass;

  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");
  }


  /**
   * handles form submission
   */
  protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

    //  List<File> uploadedFiles = saveUploadedFiles(request);

    String recipient = request.getParameter("recipient");
    //   String subject = request.getParameter("subject");
    //   String content = request.getParameter("content");

    String resultMessage = "";

    try {
      EmailUtility.sendEmailWithAttachment(host, port, user, pass,
        recipient);

      resultMessage = "The e-mail was sent successfully";
    } catch (Exception ex) {
      ex.printStackTrace();
      resultMessage = "There were an error: " + ex.getMessage();
    } finally {
      //deleteUploadFiles(uploadedFiles);
      request.setAttribute("message", resultMessage);
      getServletContext().getRequestDispatcher("/result.jsp").forward(
        request, response);
    }
  }

  /**
   * Saves files uploaded from the client and return a list of these files
   * which will be attached to the e-mail message.
   */



}

Abhinavxeon

<form action="SendMailAttachServlet" method="post" enctype="multipart/form-data">
  <input type="email" name="mailid" value="" required="" size="60" placeholder="Please enter your mail address" />
  <input type="submit" value="Send" />
</form>

现在,servlet代码:

package com.codejava.email;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

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

@WebServlet("/SendMailAttachServlet")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
  maxFileSize = 1024 * 1024 * 10, // 10MB
  maxRequestSize = 1024 * 1024 * 50) // 50MB
public class SendMailAttachServlet extends HttpServlet {

  private String host;
  private String port;
  private String user;
  private String pass;

  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");
  }


  /**
   * handles form submission
   */
  protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

    //  List<File> uploadedFiles = saveUploadedFiles(request);

    String recipient = request.getParameter("mailid");//here you have to give the same name as your HTML name filed  or input filed have

    String resultMessage = "";

    try {
      EmailUtility.sendEmailWithAttachment(host, port, user, pass,
        recipient);

      resultMessage = "The e-mail was sent successfully";
    } catch (Exception ex) {
      ex.printStackTrace();
      resultMessage = "There were an error: " + ex.getMessage();
    } finally {
      //deleteUploadFiles(uploadedFiles);
      request.setAttribute("message", resultMessage);
      getServletContext().getRequestDispatcher("/result.jsp").forward(
        request, response);
    }
  }

  /**
   * Saves files uploaded from the client and return a list of these files
   * which will be attached to the e-mail message.
   */



}

这是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

  <display-name>EmailAttachWebApp</display-name>

  <!-- 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>465</param-value>
  </context-param>

  <context-param>
    <param-name>user</param-name>
    <param-value>[email protected]</param-value>
  </context-param>

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


  <session-config>
    <session-timeout>
      30
    </session-timeout>
  </session-config>
</web-app>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

邮件未发送到PHP中的CC

来自分类Dev

订单邮件未发送到Opencart中的管理员

来自分类Dev

VSTS团队电子邮件警报未发送到Azure活动目录中的成员

来自分类Dev

电子邮件联系表单中的 PHP 开关未发送到正确的地址

来自分类Dev

ACRA未发送到电子邮件

来自分类Dev

Python电子邮件未发送到密件抄送

来自分类Dev

联系表格未发送到电子邮件

来自分类Dev

PHP电子邮件未发送到AOL

来自分类Dev

对IdentityServer4用户的声明未包含在JWT中,也未发送到Web Api

来自分类Dev

用户信息未发送到数据库

来自分类Dev

用户信息未发送到数据库

来自分类Dev

将邮件发送到队列中的未注册用户(电子邮件列表)

来自分类Dev

将电子邮件发送到阵列中的用户列表以及阵列中的附件列表

来自分类Dev

PHP将电子邮件发送到用户在插件文件中输入的地址

来自分类Dev

如何将用户输入的详细信息发送到iOS中的电子邮件?

来自分类Dev

发送到电子邮件时,PHP从表单中丢失用户输入

来自分类Dev

仅使用实例角色将邮件从Java应用程序发送到SES

来自分类Dev

警告未发送到stderr

来自分类Dev

wp_mail(Wordpress邮件功能)未发送到gmail或live.co.uk帐户

来自分类Dev

Amazon sns(推送通知)未发送到IOS应用程序

来自分类Dev

iOS应用被杀死时,GCM未发送到APN

来自分类Dev

将表单发送到Webmatrix中的电子邮件

来自分类Dev

iOS:从uitableview单元验证用户将ridirect发送到相应的Controller?

来自分类Dev

使用python将带有附件的Outlook电子邮件发送到Excel中的用户列表

来自分类Dev

如何自动将通知发送到php中登录的用户辅助电子邮件地址?

来自分类Dev

有什么方法可以从发送到共享邮箱的电子邮件中获取用户的 UPN?

来自分类Dev

邮件未发送给用户

来自分类Dev

Segment.io`analytics.page`未发送到Rails中的Google Analytics(分析)

来自分类Dev

表格中输入的数据未发送到Oracle数据库

Related 相关文章

  1. 1

    邮件未发送到PHP中的CC

  2. 2

    订单邮件未发送到Opencart中的管理员

  3. 3

    VSTS团队电子邮件警报未发送到Azure活动目录中的成员

  4. 4

    电子邮件联系表单中的 PHP 开关未发送到正确的地址

  5. 5

    ACRA未发送到电子邮件

  6. 6

    Python电子邮件未发送到密件抄送

  7. 7

    联系表格未发送到电子邮件

  8. 8

    PHP电子邮件未发送到AOL

  9. 9

    对IdentityServer4用户的声明未包含在JWT中,也未发送到Web Api

  10. 10

    用户信息未发送到数据库

  11. 11

    用户信息未发送到数据库

  12. 12

    将邮件发送到队列中的未注册用户(电子邮件列表)

  13. 13

    将电子邮件发送到阵列中的用户列表以及阵列中的附件列表

  14. 14

    PHP将电子邮件发送到用户在插件文件中输入的地址

  15. 15

    如何将用户输入的详细信息发送到iOS中的电子邮件?

  16. 16

    发送到电子邮件时,PHP从表单中丢失用户输入

  17. 17

    仅使用实例角色将邮件从Java应用程序发送到SES

  18. 18

    警告未发送到stderr

  19. 19

    wp_mail(Wordpress邮件功能)未发送到gmail或live.co.uk帐户

  20. 20

    Amazon sns(推送通知)未发送到IOS应用程序

  21. 21

    iOS应用被杀死时,GCM未发送到APN

  22. 22

    将表单发送到Webmatrix中的电子邮件

  23. 23

    iOS:从uitableview单元验证用户将ridirect发送到相应的Controller?

  24. 24

    使用python将带有附件的Outlook电子邮件发送到Excel中的用户列表

  25. 25

    如何自动将通知发送到php中登录的用户辅助电子邮件地址?

  26. 26

    有什么方法可以从发送到共享邮箱的电子邮件中获取用户的 UPN?

  27. 27

    邮件未发送给用户

  28. 28

    Segment.io`analytics.page`未发送到Rails中的Google Analytics(分析)

  29. 29

    表格中输入的数据未发送到Oracle数据库

热门标签

归档