Tag: javamail

如何使用JavaMail API在Android中发送邮件?

你如何从Android发送邮件? 相同的代码在Java项目中正常工作,但在Android中却没有。 1)GmailSender.java import javax.activation.DataHandler; import javax.activation.DataSource; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.security.Security; import java.util.Properties; public class GMailSender extends javax.mail.Authenticator { private String mailhost =”smtp.gmail.com”; private String user; private String password; private Session session; static { Security.addProvider(new com.idocz.JSSEProvider()); } […]

不使用Java Mail API接收邮件正文/内容

我有下面的代码用于使用带有附件和正文部分(消息部分)的Java Mail API发送邮件,但我只获得附件,而不是正文消息。 任何帮助或意见将不胜感激。 public static void sendmail(String to, String from, String url, String port, final String username, final String password, String filename) { Properties props = new Properties(); props.put(“mail.smtp.auth”, “true”); props.put(“mail.smtp.starttls.enable”, “false”); props.put(“mail.smtp.host”, url); props.put(“mail.smtp.port”, port); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try […]

无法使用JavaMail读取邮件内容

我正在尝试使用JavaMail阅读邮件内容 Object msg = message.getContent(); Multipart mp = (Multipart) msg; for(int k = 0; k < mp.getCount(); k++) { BodyPart bp = mp.getBodyPart(k); if (bp.isMimeType("text/plain")) { String s = (String) bp.getContent(); System.out.println("Content:" + s); } else if(bp.isMimeType("text/html")) { String s = (String) bp.getContent(); System.out.println("Content:" + s); } } 但是我收到以下错误: java.lang.ClassCastException: java.lang.String cannot be cast to […]

使用Apache Commons电子邮件发送邮件时出现问题

我正在尝试使用commons电子邮件发送简单的文本电子邮件 Email email = new SimpleEmail(); email.setHostName(“smtp.gmail.com”); email.setSmtpPort(587); email.setAuthenticator(new DefaultAuthenticator(“user@gmail.com”, “123456”)); email.setTLS(true); email.setFrom(from); email.setSubject(subject); email.setMsg(mesage); email.addTo(“to@gmail.com”); email.send(); 但是当我尝试发送电子邮件时,我得到了以下exception: 我错过了什么吗?

JavaMail连接问题

我正在尝试测试一个在线发现的简单程序,使用JavaMail发送电子邮件。 我试图使用工作电子邮件,但我收到错误“无法连接到SMTP主机:…”和“权限被拒绝:连接”。 我已经查看了有关此问题的其他post,包括: JavaMail Exchange身份validation 使用JSP发送电子邮件 JavaMail API到iMail – java.net.SocketException:权限被拒绝:连接 我想我已经解决了那些基本上是IPv4问题和身份validation的post的解决方案中提到的问题。 我是尝试使用JavaMail的新手,所以我想知道我是否在制作其他初学者错误。 还有其他我忽略的事情吗? 我是否有可能以这种方式访问​​服务器? 我使用的是通用名称而不是我公司的实际名称。 代码如下: public static void main(String[] args) { System.setProperty(“java.net.preferIPv4Stack” , “true”); String host=”mail.company.com”; final String user=”user@company.com”;//change accordingly final String password=”XXXXXXXX”;//change accordingly String to=”user@company.com”;//change accordingly //Get the session object Properties props = new Properties(); props.put(“mail.smtp.host”,host); props.put(“mail.smtp.auth”, “true”); Session session = Session.getDefaultInstance(props, new […]

Java无法使用带图像的html发送电子邮件

我正在尝试使用带有两个图像的html发送电子邮件。 这两个图像从AngularJS客户端发送为base64字符串,如下所示: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAALuCAYAAAA9jTxNAAAgAElEQ 请注意,我已将base64字符串截断为太长。 String temp = baseString.split(“,”)[1]; byte[] tile = DatatypeConverter.parseBase64Binary(temp); BodyPart messageBodyPart = new MimeBodyPart(); InputStream inputStream = new ByteArrayInputStream(tile); DataHandler dataHandler = new DataHandler(new InputStreamDataSource(inputStream)); messageBodyPart.setDataHandler(dataHandler); messageBodyPart.setHeader(“Content-ID”, “”); multipart.addBodyPart(messageBodyPart); InputStreamDataSource: public class InputStreamDataSource implements DataSource { private InputStream inputStream; public InputStreamDataSource(InputStream inputStream) { this.inputStream = inputStream; } public InputStream getInputStream() { return […]

Javamail从特定发件人处获取所有电子邮件

在java中,我需要从特定的发件人那里获取所有电子邮件。 有几种方法可以做到这一点,如下所示: http : //www.codejava.net/java-ee/javamail/using-javamail-for-searching-e-mail-messages 但是我需要在gmail端完成这个过程。 我阅读所有电子邮件然后决定应该继续哪一个电子邮件是不对的。 另外在http://alvinalexander.com/java/javamail-multiple-search-terms-pop3-mailbox-yahoo中你可以搜索它很棒的邮件正文,但是发件人(FROM部分)呢? 我该如何过滤它? 每次阅读所有电子邮件都不利于我们的带宽(当然,我们可以标记上次阅读的电子邮件,并以某种方式阅读所有新电子邮件,例如使用UIDFolder) 谢谢

尝试使用gmail以Java发送电子邮件总是导致用户名和密码不被接受

当我调用send方法时(在设置studentAddress之后),我得到了这个: javax.mail.AuthenticationFailedException: 535-5.7.1 Username and Password not accepted. Learn more at 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 y15sm906936wfd.10 我很确定代码是正确的,100%肯定我输入的用户名和密码详细信息是正确的。 那么这个gmail有什么不对吗? 这是我的代码: import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class SendEmail { private String host = “smtp.gmail.com”; private String emailLogin = “xxx@gmail.com”; private String pass = “xxx”; private String studentAddress; private String to; private Properties props = System.getProperties(); public […]

Android Javamail自定义身份validation

所以,我意识到SASL没有在android中实现,因此javamail oauth2方法不会开箱即用。 但是,根据google api docs for gmail imap( https://developers.google.com/google-apps/gmail/xoauth2_protocol ),获取身份validation令牌,对其进行编码并发送“AUTHENTICATE XOAUTH2”似乎相当简单。 ‘手动到服务器。 我的问题:我想使用javamail IMAP函数(不想处理IMAP协议命令和自我响应),但我需要一种方法来简单地插入正确的身份validation命令 – 而不是传统的登录用户名密码。 可以这样做,最简单的方法是什么? 我可以创建自己的身份validation方法并轻松实现吗? 或者,我可以创建连接,然后将其移交给IMAPStore(怀疑这会在创建和管理连接池时起作用)。 – -编辑 – – 更具体地说,在Imap.protocol.IMAPSaslAuthenticator所依赖的Android中没有实现javax.security.sasl方法。

javamail API中的SMTP身份validation问题

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.mail.event.*; 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.transport.protocol”, “smtp”); props.put(“mail.smtp.host”,”smtp.gmail.com”); props.put(“mail.smtp.port”, “25”); props.put(“mail.smtp.auth”, “true”); Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return […]