Tag: javamail

为什么JavaMail连接超时太长

在我的应用程序中,我连接到服务器以validation用户。 这是代码: try { Properties prop = new Properties(); prop.put(“mail.smtp.starttls.enable”,”true”); prop.put(“mail.smtp.auth”, “true”); prop.put(“mail.smtp.connectiontimeout”, 1000); Session session = Session.getInstance(prop, null); Transport transport = session.getTransport(“smtp”); transport.connect(“mion.elka.pw.edu.pl”, 587, registerLog, registerPass); transport.close(); return true; } catch (NoSuchProviderException ex) { Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, null, ex); return false; } catch(AuthenticationFailedException ex) { Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, null, ex); return false; } catch (MessagingException ex) { Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, […]

Session类中的getDefaultInstance()和getInstance()有什么区别?

Session.getDefaultInstance(props, authenticator)和getInstance(props, authenticator)什么区别? 一般来说,你何时会选择一个而不是另一个? 我还在getDefaultInstance(props,authenticator)上阅读了Java doc,但仍然无法清楚地清楚地看出差异。 希望专家可以帮助我更好地理解这一点。 更新:触发提出此问题的实际原因是:我们在基于Web的应用程序中的某些位置使用了Session.getDefaultInstance()方法。 有时,它抛出java.lang.SecurityException: Access to default session denied ,在快速谷歌搜索时,它建议使用Session.getInstance()方法。 因此,当一个人选择一个而不是另一个?

为什么’bodyPart.isMimeType(“text / plain”)’给出错误’无法加载bodystructure’?

我正在用Java创建一个应用程序,通过Java从我的GoDaddy webmail中读取邮件。 我已经使用了javax.mail。 当我调试程序时,它在行上发出错误: bodyPart.isMimeType(“text/plain”) 出乎意料的是,它以正确的方式处理第一封邮件,但却为第二封邮件提供了错误。 这是完整的堆栈跟踪: javax.mail.MessagingException: Unable to load BODYSTRUCTURE at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1306) at com.sun.mail.imap.IMAPMessage.getContentType(IMAPMessage.java:465) at javax.mail.internet.MimeBodyPart.isMimeType(MimeBodyPart.java:1050) at javax.mail.internet.MimeMessage.isMimeType(MimeMessage.java:986) at asanaLambdaIntegrationDebugMode.getNameMailIdFromMessage(asanaLambdaIntegrationDebugMode.java:1318) at asanaLambdaIntegrationDebugMode.main(asanaLambdaIntegrationDebugMode.java:978) 对此有何建议?

使用javamail,gmail因应用程序不太安全而拒绝身份validation

我正在运行一个非常基本的Javamail程序来尝试发送电子邮件。 这是带main()的独立程序。 一旦我开始工作,我计划在一个在tomcat下运行的servlet中使用Javamail。 运行此程序时,我收到AUTH LOGIN失败错误。 我尝试了几种不同的属性设置,但都没有解决问题。 然后我在SO上发现了一条post,建议降低我的Google帐户所需的安全级别。 当我降低安全设置时,身份validation成功。 当然,我立即回到Google帐户的更高安全级别。 我的问题是,如何使我的应用程序更安全,以便gmail不拒绝身份validation? 程序代码如下所示。 该程序非常类似于SO上的许多其他Javamail问题中的代码。 TryJavamail.java import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class TryJavamail { public static void main(String args[]) throws MessagingException { String submitName = “John Doe”; String submitEmail = “from@example.com”; String submitMessage = […]

JavaMail从字符串发送邮件附件 – 编码UTF-8

我的应用程序必须发送一个文本文件,它首先必须生成一个String。 该文本包含非ASCII符号,所以我希望它是UTF-8。 我已经尝试了很多变种,但我收到的所有附件都是一些问号。 而且,当我发送与邮件正文相同的文本时,它可以正常工作。 以下是生成带附件的MimeBodyPart的代码行: String attachment = “Привет”; messageBodyPart.setContent(new String(attachment.getBytes(“UTF-8”), “UTF-8″),”text/plain; charset=UTF-8”); 我也尝试使用没有任何变换的字符串,只使用字节,现在,如你所见,我试图从字节生成一个字符串… 我究竟做错了什么? (我确实记得在另一个项目中这样做,但是我不再能够访问它的源代码)。 先谢谢你。 提莫菲。 UPDATE 阅读完回复后,经过一些不成功的试验后,我认为最好发布我的邮件代码。 我有Mailer类,它负责邮件发送,其他类只能调用它的静态sendMessage()方法来发送消息。 这一切都在Google App Engine上运行。 public static void sendMessage(String to, String subject, String msgBody, String attachment) throws AddressException, MessagingException { Properties props = new Properties(); Session mailSession = Session.getDefaultInstance(props, null); Message msg = new MimeMessage(mailSession); String […]

Java Mailexception错误;

mycode的: import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendMailTLS { public static void main(String[] args) { final String username = “myemailid@gmail.com”; final String password = “myemailpassword”; Properties props = new Properties(); props.put(“mail.smtp.auth”, “true”); props.put(“mail.smtp.starttls.enable”, “true”); props.put(“mail.smtp.host”, “smtp.gmail.com”); props.put(“mail.smtp.port”, “587”); Session session = Session.getInstance(props, new […]

如何配置用于JavaMail的邮件服务器?

我正在尝试使用以下代码: import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; // important import javax.mail.event.*; // important import java.net.*; import java.util.*; public class servletmail extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); response.setContentType(“text/html”); try { Properties props=new Properties(); props.put(“mail.smtp.host”,”localhost”); // ‘localhost’ for testing Session session1 = Session.getDefaultInstance(props,null); String s1 […]

如何从Java发送html电子邮件到Outlook

我正在尝试使用JavaMail以html格式发送电子邮件,但它似乎总是只在Outlook中显示为文本电子邮件。 这是我的代码: try { Properties props = System.getProperties(); props.put(“mail.smtp.host”, mailserver); props.put(“mail.smtp.from”, fromEmail); props.put(“mail.smtp.auth”, authentication); props.put(“mail.smtp.port”, port); Session session = Session.getDefaultInstance(props, null); // — Create a new message — MimeMessage message = new MimeMessage(session); // — Set the FROM and TO fields — message.setFrom(new InternetAddress(fromEmail, displayName)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); MimeMultipart content = new MimeMultipart(); MimeBodyPart text […]

通过Spring启动发送电子邮件“spring-boot-starter-mail”

我正在尝试使用spring boot发送电子邮件,但我得到: java.lang.UnsupportedOperationException: Method not yet implemented at javax.mail.internet.MimeMessage.(MimeMessage.java:89) at org.springframework.mail.javamail.SmartMimeMessage.(SmartMimeMessage.java:52) at org.springframework.mail.javamail.JavaMailSenderImpl.createMimeMessage(JavaMailSenderImpl.java:325) 我使用过这个maven条目: org.springframework.boot spring-boot-starter-parent 1.2.6.RELEASE org.springframework.boot spring-boot-starter-web 1.2.6.RELEASE org.springframework.boot spring-boot-starter-mail 1.2.6.RELEASE application.properties: spring.mail.host=smtp.gmail.com spring.mail.port= 25 spring.mail.username= test spring.mail.password= test 我的代码: @Autowired private JavaMailSender javaMailSender; private void send() { MimeMessage mail = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mail, true); helper.setTo(“mymail@mail.co.uk”); helper.setReplyTo(“someone@localhost”); helper.setFrom(“someone@localhost”); […]

如何使用纯文本和HTML文本发送邮件,以便每个邮件阅读器可以选择适合它的格式?

来自http://www.oracle.com/technetwork/java/faq-135477.html#sendmpa : 您将要发送MIME多部分/替代消息。 您构造此类消息的方式与构造多部分/混合消息的方式基本相同,使用使用新MimeMultipart(“alternative”)构造的MimeMultipart对象。 然后,将text / plain body部分作为multpart中的第一部分插入,并将text / html body部分作为multipart中的第二部分插入。 您需要自己构建plain和html部分以获得适当的内容。 有关此类消息的结构的详细信息,请参阅RFC2046。 有人可以给我看一些示例代码吗?