我正在尝试在Android中创建邮件发送应用程序.
如果我使用:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
Run Code Online (Sandbox Code Playgroud)
这将启动内置的Android应用程序; 我正在尝试直接发送邮件,而不使用此应用程序.
我正在尝试在Jenkins/Hudson上配置我的电子邮件,并且我经常收到错误:
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be
non-empty
Run Code Online (Sandbox Code Playgroud)
我在网上看到了大量有关错误的信息,但我没有任何工作.我在Fedora Linux上使用Sun的JDK(而不是OpenJDK).
以下是我尝试过的一些事情.我尝试按照这篇文章的建议,但将cacerts从Windows复制到我托管Jenkins的Fedora盒子都没有用.我尝试将Gmail配置为我的SMTP服务器时尝试按照本指南操作,但它也无法正常工作.我还尝试手动下载并移动这些cacert文件,并使用本指南中的命令变体将它们移动到我的Java文件夹.
我对任何建议持开放态度,因为我现在正被困住.我已经从Windows Hudson服务器上工作了,但我在Linux上苦苦挣扎.
是否可以使用GMail帐户从我的Java应用程序发送电子邮件?我已经使用Java应用程序配置我的公司邮件服务器来发送电子邮件,但是当我分发应用程序时,这不会削减它.任何使用Hotmail,Yahoo或GMail的答案都是可以接受的.
我已使用JMS在我的Web应用程序中成功发送了电子邮件,但结果仅以纯文本显示.我希望内容能够显示html.我该怎么做?这大致是我所拥有的:
Message msg = new MimeMessage(mailSession);
try{
msg.setSubject("Test Notification");
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(sentTo, false));
String message = "<div style=\"color:red;\">BRIDGEYE</div>";
msg.setContent(message, "text/html; charset=utf-8");
msg.setSentDate(new Date());
Transport.send(msg);
}catch(MessagingException me){
logger.log(Level.SEVERE, "sendEmailNotification: {0}", me.getMessage());
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Java Mail API来读取和解析电子邮件.它与Servlet代码一起工作正常.
现在我正在尝试为同一目的编写一个JUnit测试用例.但在线 Session session = Session.getDefaultInstance(properties);
我得到以下异常:
java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
at javax.mail.Session.initLogger(Session.java:227)
at javax.mail.Session.<init>(Session.java:212)
at javax.mail.Session.getDefaultInstance(Session.java:315)
at javax.mail.Session.getDefaultInstance(Session.java:355)
at com.vxl.appanalytix.dataload.fromEmail.EmailParser.parseEmailSubject(EmailParser.java:44)
at com.vxl.appanalytix.controllers.controllerClasses.GenericEmailServiceClass.readEmailAttachments(GenericEmailServiceClass.java:33)
at com.vxl.appanalytix.dataload.GenericEmailTestCase.test(GenericEmailTestCase.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) …
Run Code Online (Sandbox Code Playgroud) 现在我已经下载了所有消息,并将它们存储到
Message[] temp;
Run Code Online (Sandbox Code Playgroud)
如何获取每条消息的附件列表
List<File> attachments;
Run Code Online (Sandbox Code Playgroud)
注意:请不要使用第三方库,只需JavaMail.
我想用弹簧支架发送邮件.我的项目是用maven-2构建的,我使用的是spring-core 2.5.5我试着在maven中央仓库中查找包含在我的pom.xml中的工件,而我发现的唯一一个是spring支持.问题是repo中的最高版本是2.0.8,它取决于spring-core v.2.0.8.我应该添加它并从其依赖关系spring-core,spring-aop等中排除,或者我应该寻找另一个工件(但哪一个会做?)或使用另一个repo?对于org.springframework.mail来说,哪个是正确的maven-2工件,哪里可以找到它?
我想使用以下方法向多个收件人发送邮件:
message.addRecipient(Message.RecipientType.TO, String arg1);
Run Code Online (Sandbox Code Playgroud)
要么
message.setRecipients(Message.RecipientType.TO,String arg1);
Run Code Online (Sandbox Code Playgroud)
但令人困惑的是,在第二个争论中,如何传递多个地址,如:
message.addRecipient(Message.RecipientType.CC, "abc@abc.com,abc@def.com,ghi@abc.com");
Run Code Online (Sandbox Code Playgroud)
要么
message.addRecipient(Message.RecipientType.CC, "abc@abc.com;abc@def.com;ghi@abc.com");
Run Code Online (Sandbox Code Playgroud)
我也可以使用替代方法发送消息,但想知道上述方法的目的.如果我不能使用它(因为直到现在我还没有得到上述要求的任何答案)那么这个方法需要在邮件API中.
我必须通过电子邮件发送HTML文件,但不是附件.
Message simpleMessage = new MimeMessage(mailSession);
try {
fromAddress = new InternetAddress(from);
toAddress = new InternetAddress(to);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO, toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);
Transport.send(simpleMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它只是发送短信发送电子邮件.我想发送存储在另一个文件中但不作为附件的HTML内容
UPDATE 1/26/2015 -- It appears the most recent JRE/JDK for Java 8 (update >= 31) and JRE/JDK for Java 7 now include the Godaddy G2 CA server in the default trust store. If possible, it's urged you upgrade your JRE/JDK to the latest Java 8 update to resolve this issue.
更新2014年11月29日 - 这仍然是一个问题,Godaddy似乎不关心也不会做任何事情.几个月前,Godaddy安全产品副总裁在这里发布了一篇博客文章,说它正在修复它并提供了一个临时的解决方案,但到目前为止没有任何改变.值得注意的是Godaddy的G2 CA服务器已经存在了至少5年,并且在那段时间Godaddy没有采取适当的步骤来解决这个已知问题.所提供的解决方案就是解决方案,而不是解决方案.第三方服务的用户无法控制服务器上的证书安装方式.
It seems users should avoid purchasing Godaddy SSL certs until they get serious about being a CA.
如果您愿意致电以下是他们的SSL团队的联系信息:
GoDaddy SSL Team Support Number: 1-480-505-8852 …
jakarta-mail ×10
java ×8
email ×3
android ×1
attachment ×1
gmail ×1
html ×1
hudson ×1
jenkins ×1
junit ×1
mail-server ×1
maven-2 ×1
spring ×1
ssl ×1
zimbra ×1