Tag: javamail

不同操作系统下JavaMail中part.getContent的类型是什么?

我正在使用JavaMail接收邮件。 起初,我是在Mac OS X下开发的。我从Internet上找到的例子如下: public void getMailContent(Part part) throws Exception { String contenttype = part.getContentType(); int nameindex = contenttype.indexOf(“name”); boolean conname = false; if (nameindex != -1) conname = true; System.out.println(“CONTENTTYPE: ” + contenttype); if (part.isMimeType(“text/plain”) && !conname) { bodytext.append((String) part.getContent()); } else if (part.isMimeType(“text/html”) && !conname) { bodytext.append((String) part.getContent()); } else if (part.isMimeType(“multipart/*”)) { […]

在Session中使用lambda表达式

我正在编写一个Javafx应用程序,其中使用JavaMail发送电子邮件。 在创建新Session时,我使用语法。 Session session = Session.getInstance(props, //Use labmda expression? new javax.mail.Authenticator() { protected javax.mail.PasswordAuthentication getPasswordAuthentication(){ return new javax.mail.PasswordAuthentication(userName, password); } } ); 我想知道是否可以使用lambda表达式来简化它 () -> return new java.mail.PasswordAuthentiaction(userName, password) 但每当我使用它时,它会抛出不兼容的类型,并说Authenticator不是一个function界面。

为MimeMessage设置Content-Type?

我对mime消息的内容类型有一个困惑。 说我有一个mime消息。 这是一个多部分的消息,身体部位是这样的 Mime身体部分包含纯文本,html文本(像一些粗体字母) 第二个哑体部分包含附件, 第三个mime身体部位包含一个内嵌图像(从身体带cid引用) 当我创建正文部分时,我应该明确设置顶级mime消息的内容类型,然后是每个正文部分吗? 如果是,那么它们在上面的例子中应该是什么? 对于html建议使用multipart/alternative ,对附件建议使用multipart/mixed ,建议使用multipart/related进行内联。 我正在使用所有这些,那么什么应该是内容类型的完整消息和不同的身体部位? 仅仅是为了获取信息,我试图复制上面的场景,我没有为整体MimeMessage和身体部位设置内容类型。 但是我仍然得到了预期的东西,如纯文本,正文中的大胆字母,附件,右边詹姆斯的内嵌图像 詹姆斯如何在不设置内容类型的情况下解释哑剧信息和身体部位,以及如何以正确的方式展示它们? 代码供参考 MimeMessage msg = new MimeMessage(mailSession); MimeMultipart mpart = new MimeMultipart(); MimeBodyPart bp = new MimeBodyPart(); bp.setText(“plain text and html text likeTest”, CHARSET_UTF_8, MESSAGE_HTML_CONTENT_TYPE); // add message body mpart.addBodyPart(bp); // adding attachment MimeBodyPart bodyPart = new MimeBodyPart(); bodyPart.setFileName(“WordFile1”); file = […]

com.sun.mail.smtp.SMTPSendFailedException:530-5.5.1需要validation

我正在尝试从我的Java应用程序向任何特定的电子邮件地址发送电子邮件。 我正在使用Java Mail API但不幸的是我收到了SMTPSendFailedException错误。 任何人都可以告诉我我在哪里犯了错误。 这是我的代码 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; //import SeconMail.Authenticator; public class SendMail { public static void main(String [] args) { // Recipient’s email ID needs to be mentioned. String to = “to@gmail.com”; // Sender’s email ID needs to be mentioned String from = “from@expertflow.com”; // Assuming you are […]

如何分离业务逻辑和电子邮件发送function?

我的java web应用程序中有一个要求,我需要在某些条件下发送电子邮件警报。 为此,我使用了javax mail api并发送电子邮件工作正常。 但问题是程序执行等待直到执行发送电子邮件的方法。 由于在不同的点上发送了数百封电子邮件……这会显着降低性能。 我正在使用弹簧,也使用了弹簧。 任何人都可以建议我如何分离我的业务逻辑和发送电子邮件function。 它应该像 – 发送电子邮件是我的建议,在调用xyz方法时执行 – 所以主要执行不应该等待建议完成其执行,而应该返回并执行进一步的业务逻辑,从而单独执行电子邮件发送。 这里创建新线程似乎是明显的选择。 但我认为可能有更好的方法,是吗? 谢谢。

javax.mail.Message尝试获取给定日期范围的消息

在我的应用程序中,我正在尝试使用java邮件API来读取我们收到退回电子邮件记录的一个邮箱,我相信我们可以使用它来获取所有邮件 // Get a Store object that implements the specified protocol. store = session.getStore(protocol); //Connect to the current host using the specified username and password. store.connect(hostName, userName, password); folder = store.getFolder(folderName); Message[] messages = folder.getMessages(); 然而,这将返回我提供的文件夹中的所有消息,有没有办法在我可以找到我在昨天收到的给定日期范围内的消息。 在这方面的任何帮助将受到高度赞赏。 谢谢 Vaibhav的

Javamail ISO-8859-1格式化

我使用Javamail Api为我的Android手机制作了一个电子邮件客户端。 如果我尝试使用以下方法获取发件人的邮件地址和收件人邮件地址: Address[] froma = m.getFrom(); String from = InternetAddress.toString(froma); Address[] toa = m.getRecipients(Message.RecipientType.TO); String to = InternetAddress.toString(toa); 我得到一个像这样的字符串: “Georg =?ISO-8859-1?Q?SP = E4the?=它必须是GeorgSpäthe或Georg Spaethe。 我认为问题是这是德国邮件与另一种编码。 任何人都可以帮我解决这个问题吗?

在Java Mail API中将“消息成功传递”到错误的邮件地址

我已经开始使用JAVA邮件API实现邮件模块。 我使用SMTPMessage,以便我可以获得邮件的传递状态。 问题是我收到wrong mail addresses成功递送报告 这就是我发送消息所做的工作 SMTPMessage smtpMsg=new SMTPMessage(message); smtpMsg.setReturnOption(SMTPMessage.RETURN_HDRS); smtpMsg.setNotifyOptions(SMTPMessage.NOTIFY_SUCCESS |SMTPMessage.NOTIFY_FAILURE); Transport transport = session.getTransport(“smtp”); //attach the listeners for the connection and transmission transport.addConnectionListener(this); transport.addTransportListener(this); transport.connect(); //connect to the server and send the message transport.sendMessage(smtpMsg, smtpMsg.getAllRecipients()); 由于我的类实现了TransportListener,ConnectionListener ,我已经将侦听器附加为 public void opened(ConnectionEvent e) { System.out.println(“Connection opened”); } public void disconnected(ConnectionEvent e) { System.out.println(“Connection disconnected”); } […]

用javamail连接到hotmail?

我想知道是否可以使用JavaMail连接到Hotmail? 我试过这个,但它不起作用,连接被拒绝了…… String host = “pop3.live.com”; String username = “laqetqetqet@hotmail.com”; String password = “rqetqetq”; Session session; Store store; String SSL_FACTORY = “javax.net.ssl.SSLSocketFactory”; Properties pop3Props = new Properties(); pop3Props.setProperty(“mail.pop3.socketFactory.class”, SSL_FACTORY); pop3Props.setProperty(“mail.pop3.socketFactory.fallback”, “false”); pop3Props.setProperty(“mail.pop3.port”, “995”); pop3Props.setProperty(“mail.pop3.socketFactory.port”, “995”); URLName url = new URLName(“pop3”, host, 995, “”, username, password); session = Session.getInstance(pop3Props, null); store = new POP3SSLStore(session, url); store.connect(); […]

Javamail中的FolderClosedexception

我试图在Android中创建一个简单的邮件客户端,我有我的应用程序中的java版本的javamail编译和运行。 但是,每当我尝试连接和接收邮件时,我都会看到如下所示的文件夹已关闭exception。 10-23 12:12:13.484: W/System.err(6660): javax.mail.FolderClosedException 10-23 12:12:13.484: W/System.err(6660): at com.sun.mail.imap.IMAPMessage.getProtocol(IMAPMessage.java:149) 10-23 12:12:13.484: W/System.err(6660): at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1262) 10-23 12:12:13.484: W/System.err(6660): at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:616) 10-23 12:12:13.484: W/System.err(6660): at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1398) 10-23 12:12:13.484: W/System.err(6660): at com.teamzeta.sfu.Util.MailHelper.getMessageHTML(MailHelper.java:60) 10-23 12:12:13.484: W/System.err(6660): at com.teamzeta.sfu.GetAsyncEmails.onPostExecute(EmailActivity.java:31) 10-23 12:12:13.484: W/System.err(6660): at com.teamzeta.sfu.GetAsyncEmails.onPostExecute(EmailActivity.java:1) 10-23 12:12:13.484: W/System.err(6660): at android.os.AsyncTask.finish(AsyncTask.java:631) 10-23 12:12:13.484: W/System.err(6660): at android.os.AsyncTask.access$600(AsyncTask.java:177) 10-23 12:12:13.484: W/System.err(6660): at […]