我需要从Gmail检索未读邮件.我正在使用Java Mail API.默认情况下,此API会检索从最旧到最新的邮件.但我需要先检索最近的邮件.可能吗?提前致谢.
我在尝试从一个Gmail帐户向另一个Gmail帐户发送电子邮件时发现此错误.如何解决这个错误?帮助我.
有一个错误:
534-5.7.14请通过网络浏览器和534-5.7.14登录,然后重试.534-5.7.14了解更多信息,请访问534 5.7.14 https://support.google.com/mail/answer/78754 hw7sm51688135pac.12 - gsmtp
我想在我的新 Spring 应用程序中保持完全的反应性。因此,我将 web-flux/ reactor 和 ReactiveRepository 与 MongoDB 一起使用。
您知道如何将 java-mail 反应式地集成到技术堆栈中吗?任何替代方案?
由于我不是律师,因此JavaMail API的许可协议令人困惑.
我想在电子邮件服务的服务器端使用JavaMail作为闭源商业项目,它为我们的客户提供电子邮件功能.
那么,我是否可以使用JavaMail,或者我是否需要支付许可费或在开源许可下发布我的代码或类似的东西?
尝试在JavaMail中使用NTLM连接到Exchange服务器.我可以连接到SMTP,但不能连接到IMAP.我还可以使用相同的主机/用户名/密码,帐户类型="IMAP",端口143,ssl = false,身份验证= NTLM,域名=""通过OS X Mail.app应用程序进行身份验证.
连接代码:
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Store;
import java.util.Properties;
public class NTLMTest {
public static void main(String[] args) throws Exception {
final String host = "example.com";
final String user = "bob";
final String password = "password";
final Properties properties = new Properties();
Session session = Session.getDefaultInstance(properties);
session.setDebug(true);
// SMTP CONNECT
final Transport transport = session.getTransport("smtp");
transport.connect(host, user, password);
System.out.println("SMTP Connect successful");
// IMAP CONNECT
final Store store = session.getStore("imap");
store.connect(host, user, password);
System.out.println("IMAP Connect …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个在接收端包装javamail API的库,就像Commons Email处理电子邮件发送的方式一样.
在我完美的世界中,图书馆以下列方式运作:
有人知道上面做的邮件库/ API吗?
我有一个Java程序,它使用javax.mail发送SMTP消息.这个程序在Linux机器上工作正常,我想事先强调一下.当我在Windows 7 x64机器上尝试相同的代码时,出现此错误:
send failed, exception: javax.mail.MessagingException: Could not connect to SMTP host: smtp.west.cox.net, port: 25;
nested exception is: java.net.SocketException: Network is unreachable: connect
Run Code Online (Sandbox Code Playgroud)
这是代码:
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, props.getProperty("mail.to", "me@mine.com"));
msg.setSubject(mySubject);
msg.setSentDate(new Date());
msg.setContent(sBuf.toString(), "text/html");
Transport.send(msg);
Run Code Online (Sandbox Code Playgroud)
这个程序几乎都使用默认值.它在同一网络上的另一个盒子上工作正常.它使用我用于常规邮件客户端的相同设置,工作正常.这个Windows框上有一些阻止SMTP的东西,但仅限于Java.
我安装了Symantec(Norton)360.关闭它没有任何区别,但重新启动到安全模式(几乎禁用所有内容)允许程序工作并发送邮件就好了.
所以,回顾一下:
在我再花一天时间分开并卸载/重新安装之前,我想知道是否有人有任何关于解决这个问题的建议?
简单的Java Mail客户端可以正常运行在SSL上运行的电子邮件服务器.但是从Spring JavaMailSenderImpl类使用时,同一服务器无法正常工作.thunderbird也可以正常使用邮件服务器.但是,春天有问题.
这是原始的Java代码,工作正常.
final String username = "id@server.com";
final String password = "password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtps.ssl.checkserveridentity", "true");
props.put("mail.smtps.ssl.trust", "*");
props.put("mail.smtp.host", "server.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("id@server.com"));
message.setRecipients( Message.RecipientType.TO,
InternetAddress.parse("id@gmail.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler, \n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw …Run Code Online (Sandbox Code Playgroud) I read on several sites that, when using the JavaMail API, to set the property mail.smtp.ssl.enable to true. I have some code as follows:
props.put("mail.smtp.host", "exchangemail1.example.com");
props.put("mail.from", "myemail@example.com");
props.put("mail.smtp.starttls.enable", "true");
// I tried this by itself and also together with ssl.enable)
props.put("mail.smtp.ssl.enable", "true");
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, "me.at@example.com");
// also tried @gmail.com
msg.setSubject("JavaMail ssl test");
msg.setSentDate(new Date());
msg.setText("Hello, world!\n");
props.put("mail.smtp.auth", "false");
Transport trnsport;
trnsport = session.getTransport("smtp");
trnsport.connect();
msg.saveChanges();
trnsport.sendMessage(msg, msg.getAllRecipients());
trnsport.close();
Run Code Online (Sandbox Code Playgroud)
This …
我正在使用Java Mail API,我正在尝试通过Gmail的SMTP发送电子邮件.我的程序如何工作:java.util.Scanner类用于获取用户输入 - 我要求用户在邮件发送类中使用各种参数; 执行以下操作:
Message mailMessage = new MimeMessage(session);
mailMessage.setFrom(new InternetAddress("example@example.com"));
mailMessage.setRecipients(Message.RecipientType.TO,InternetAddress.parse(mail.getTo()));
mailMessage.setSubject(mail.getSubject());
mailMessage.setText(mail.getMessage());
Transport.send(mailMessage);
Run Code Online (Sandbox Code Playgroud)
只要我使用ASCII符号/字符,一切都有效.但每当我想使用"特定国家"字符时 - 比如[õäöü] - 我会看到一堆奇怪的符号......
到目前为止我使用的技术(对我来说不起作用):
setHeader("Content-Type", "text/plain; charset=UTF-8");
setHeader("Content-Encoding","ISO-8859-9");
setContent(message, "text/plain; charset=iso-8859-2");
Run Code Online (Sandbox Code Playgroud)
注意:执行System.out.println()以显示要发送的消息时,IDE中的所有内容都会正确显示.
编辑:ex发送邮件正文时[õäöü]它在Gmail中显示[ä""?].
编辑:何时mailMessage.setText(MimeUtility.encodeText(mail.getMessage(), "UTF-8", "Q"));使用,然后Gmail中的输出如下:
"=?UTF-8?Q?=C3=A4=E2=80=9E=E2=80=9D=EF=BF=BD;=0D=0A?="
Run Code Online (Sandbox Code Playgroud)
另一个编辑:有趣的是,当我这样做时:mailMessage.setText(strVar + "õäöü", "ISO-8859-1");
它实际上在我的电子邮件中很好地附加了"õäöü"(但字符串的第一部分[strVar]仍然充满了?和[]的).