gpt4 book ai didi

java - 如何从java打开outlook邮件,并使用html代码预先填充正文

转载 作者:行者123 更新时间:2023-12-02 08:55:22 28 4
gpt4 key购买 nike

任何人都可以帮助我编写一个java代码,我希望将我的html代码添加到邮件正文中,并且应该弹出邮件客户端,以便人们可以输入收件人:并可以在需要时编辑正文。 我已经尝试过这段代码,但这个代码只是发送邮件。我想要的是我的邮件客户端应该弹出并已输入正文。

package you;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Properties;

import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;


public class test1 {
public void fnSendMail(String Status) throws IOException, InvalidFormatException, URISyntaxException {
String htmlContent = null;
if (Status.equals("Completed")) {


htmlContent = "<html><br>Below is Test Execution Report.<br>Please find the attached for Detailed Results"
+ "<br><br><table border='1' cellpadding='2' cellspacing='3' width='40%' bordercolor='#999999' style='border-collapse: collapse;'>"
+ "<tr><th>SNo</th><th>Run_Method</th><th>abc_name</th><th>Execution_Status</th></tr>" + "</table>"
+ "<br><br><br><h3 style='color:FireBrick;'>Please do not respond to this mail </h3></html>";
} else {
htmlContent = "<html><br>" + "<h3 style='color:FireBrick;'>Automation got failed due to some issue, hence "
+ "Please verify Maven Errors.<br><br>Execution Status till failure is attached.</h3></html>";
}
String from = "abc@cdf.com";
String host = "x.y.z";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));

Multipart multipart = new MimeMultipart();
BodyPart messageBodyText = new MimeBodyPart();
message.setSubject("CSI API Automated Testing Report is " + Status);
messageBodyText.setContent(htmlContent, "text/html");
multipart.addBodyPart(messageBodyText);
message.setContent(multipart);
Transport.send(message);
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
public static void main(String[] args) {
test1 test2= new test1();
try {
test2.fnSendMail("Completed");
System.out.println("Email sent.");
} catch (Exception ex) {
System.out.println("Failed to sent email.");
ex.printStackTrace();
}
}
}

任何其他方法也可以,但我只需要 java 和 javascript

最佳答案

您不必调用 Transport.send,而是必须调用 MimeMessage.saveChanges然后使用 MimeMessage.writeTo将其另存为“.eml”文件系统。然后使用 java.awt.Desktop.open 打开该文件启动电子邮件客户端。您的系统必须与 eml 有 mime 关联,否则 open 调用将失败。

如果 eml 的 O/S mime 类型未设置为 outlook.exe/eml %1 之类的内容,那么您可能必须求助于使用进程 API使用 eml 开关直接启动 Outlook。例如,如果您想预览 foo.eml 草稿消息,则命令将为:

outlook.exe/eml foo.eml

您必须在电子邮件客户端关闭后进行清理工作。

您还必须考虑将电子邮件保留在文件系统上的安全隐患。

关于java - 如何从java打开outlook邮件,并使用html代码预先填充正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com