Tag: javamail

javax.mail.AuthenticationFailedException:535 5.0.0身份validation失败

我不明白为什么我会得到这个例外。 这是尝试发送电子邮件的代码。 public void sendAsHotmail() { final String username = jTextField14.getText(); final String password = jPasswordField4.getText(); String subject = jTextField16.getText(); String Cc = jTextField17.getText(); String Bcc = jTextField18.getText(); String recipient = jTextArea5.getText(); Properties props = new Properties(); props.put( “mail.smtp.host” , “smtp.live.com”); props.put( “mail.smtp.user” , username ); // Use TLS props.put(“mail.smtp.auth” , “true” ); props.put( “mail.smtp.starttls.enable” […]

如何在电子邮件中设置“名称”属性

我发送邮件与Java邮件和SMTP服务器。 我希望能够更改收件人在收到电子邮件时看到的“名称” – 而不仅仅是电子邮件地址的前缀(@之前的位)。 我怀疑我需要更改或添加’props.put();’ 设置,但我无法解决哪一个。 public class Email { private final String HOST = “mail.myserverr.com”; private final String USER = “me+myserver.com”; private final String FROM = “me@myserver.com”; private final String PASS = “mypass”; private final String PORT = “25”; private final String AUTH = “true”; @Test public void sendMail(){ String[] to = {“mygmail@gmail.com”,”me@myservercom”}; sendMessage(to,”Let’s […]

如何从imap只下载新的电子邮件?

我有一个用于使用imap存档电子邮件的应用程序。 此应用程序中还有许多需要存档的imap帐户。 在这个时刻,应用程序不时连接到imap帐户并只下载新的电子邮件。 我的问题是,每次连接到imap帐户时,它都会validation来自所有文件夹的所有电子邮件,并仅下载尚未下载的电子邮件(我存储所有电子邮件的邮件ID,并仅下载具有邮件ID的电子邮件)没有存储)。 所以我想知道是否有替代方案,因为validation所有电子邮件需要一些时间(10-20K需要2-5分钟)。 我使用JavaMail API连接到imap帐户。

javax.mail.MessagingException:无法连接到SMTP主机:localhost,port:25

我在发送电子邮件时遇到问题。 javax.mail.SendFailedException: Sending failed; nested exception is: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect at javax.mail.Transport.send0(Transport.java:219) at javax.mail.Transport.send(Transport.java:81) at org.apache.jsp.online_005fScheme_005fSend_005fMail_jsp.sendMail(online_005fScheme_005fSend_005fMail_jsp.java:116) at org.apache.jsp.online_005fScheme_005fSend_005fMail_jsp._jspService(online_005fScheme_005fSend_005fMail_jsp.java:416) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at […]

为什么JavaMail Transport.send()是一个静态方法?

我正在修改我没写过的使用JavaMail的代码,并且在理解为什么JavaMail API的设计方式有点麻烦。 我觉得,如果我理解,我可以做得更好。 我们称之为: transport = session.getTransport(“smtp”); transport.connect(hostName, port, user, password); 那么为什么Eclipse警告我这个: transport.send(message, message.getAllRecipients()); 是对静态方法的调用? 如果我无法使用该对象发送消息,为什么我会获取Transport对象并提供特定于它的设置? Transport类如何知道用于发送消息的服务器和其他设置? 它工作正常,很难相信。 如果我为两个不同的服务器实例化了Transport对象,该怎么办? 怎么知道使用哪一个? 在写这个问题的过程中,我发现我应该真的在呼唤: transport.sendMessage(message, message.getAllRecipients()); 那么静态Transport.send()方法的目的是什么? 这只是糟糕的设计,还是有这样的原因?

通过JavaMail发送到gmail时出现TLS问题

事实certificate,JavaMail比我想象的更令人沮丧。 我在网上看了几个关于如何通过Gmail服务器发送简单SMTP电子邮件的例子(但不是通过SSL)。 在尝试了几个不同的代码示例之后,当我调用transport.connect()时,我总是得出相同的示例exception。 我不断得到这个堆栈跟踪: Exception in thread “main” com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. l10sm302158wfk.21 at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1580) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1097) at SendEmail.main(SendEmail.java:47) 有人可以告诉我应该添加或做什么来解决这个问题? 这是我的代码: Properties props = new Properties(); props.put(“mail.transport.protocol”, “smtp”); props.put(“mail.host”, “smtp.gmail.com”); props.put(“mail.user”, “blahblah@gmail.com”); props.put(“mail.password”, “blah”); props.put(“mail.port”, “587”); Session mailSession = Session.getDefaultInstance(props, null); Transport transport = mailSession.getTransport(); MimeMessage message = […]

JavaMail(smtps&imaps)

如何配置JavaMail以使用smtps和imaps?

SMTP客户端Java程序

我是Java Mail的新手。 我首先想要执行该程序(我通过我的老年人),看看是否一切正常。 因此,当我编译该代码时,我发现错误,找不到所有Java邮件的类和包。 任何人都可以列出我的程序编译和执行所需的东西没有任何问题。 我下载了“JAva Mail 1.4.5”,但是没有安装文件? 我有JAva 1.6和Windows XP 请帮忙…….. 错误: C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol […]

使用IMAP邮寄:如何检测邮件是否已从一个文件夹移动到另一个文件夹?

使用JavaMail API和IMAP,我想知道消息已从文件夹a移动到b。 如何在不增加听众的情况下做到这一点? 我的意思是当我登录帐户并打开文件夹时,我想发现消息的变化。 问题是如果您在文件夹a中有3条消息,其中包含ID 1 2和3,并且您将具有ID 3的消息移动到文件夹B,则消息的ID将更改,并且我们在文件夹B中有一条ID为1的消息。 我的目标是将邮件服务器中的邮件结构与我自己的本地服务器同步。 我必须自己保留所有消息信息,标志等。 因此,在每次登录时,我必须发现对邮件服务器中存储的邮件所做的所有更改。 我可以通过以下方式获取新邮件或未读邮件: Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.RECENT), true)); 或者 Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false)); 但我对新邮件不感兴趣,我也想知道对旧邮件所做的更改,例如我想知道这个: 已在2个月前阅读的邮件已移至另一个文件夹。 我的想法是, 因为uids改变了,我不能用它来识别邮件。 我想我必须使用主题发送者接收日期等邮件信息,构建它们的哈希值并比较每次登录时消息的哈希值。 但它会导致性能问题。

未知的SMTP主机

我正在使用tomcat运行Java Web应用程序,通过电子邮件将生成的报告发送给用户。 我能够发送电子邮件,但几小时后服务器停止发送电子邮件,出现以下错误。 javax.mail.MessagingException: Unknown SMTP host: mail.mydomain.co.uk; nested exception is: java.net.UnknownHostException: mail.mydomain.co.uk at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1970) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) at javax.mail.Service.connect(Service.java:317) at javax.mail.Service.connect(Service.java:176) at javax.mail.Service.connect(Service.java:125) at javax.mail.Transport.send0(Transport.java:194) at javax.mail.Transport.send(Transport.java:124) at com.turnkey.email.SendEmail.sendMail(SendEmail.java:119) at com.turnkey.thread.CommunicationThread.run(CommunicationThread.java:399) Caused by: java.net.UnknownHostException: mail.mydomain.co.uk at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938) … 8 more 一段时间后,服务器再次开始发送电子邮件。 谁能告诉我可能是什么问题。 我该如何解决这个问题? […]