私は、javaxを使用してメールを送信する必要があります。メッセージ本文はhtmlです。それはイメージタグを持っています、私の質問は、メールが別のネットワークで開かれたときにイメージが利用できるようにsrc属性の値にする必要があります。画像は、画像と呼ばれるフォルダ内のサーバー内に配置されます。壊れた画像のタグ
これはメッセージ本文として機能するhtml文字列です。
String emailBody = "<table width=\"99%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"+
"<tr>"+
"<td align=\"center\" valign=\"top\" style = \"background-color:#ED1B24;\">"+
"<img src =\""+
"http://myip:8080/Survey_services" + "/images/mrflogo.jpg" + "\">" +
"</td>" +
"</tr>"+
"<tr>"+
"<td align=\"left\">"+
"<p>Hi "+firstname+"," + "</p></b>"+
"<p>A user account has been created for you, the user name will be your employee id</p></b>"+
"<p>Your Password: "+password+"</p></b>"+
"<p>Kindly change password at your convenience</p></b></b>"+
"<p>Regards,</p></b>"+
"<p>Admin Team</p>"+
"</td>"+
"</tr>"+
"</table>"
私は別のマシンにまたは罰金されるHTMLのGmail.Restから開いたときのいずれかの場合には、画像をメールにロードされていない、http://myip:8080/Survey_servicesとhttp://localhost:8080/Survey_servicesの両方を試してみました。
FYI myipは、プロジェクトがホストされているマシンのipV4アドレスです。
EDIT@Bill Shannonによると、私は次のことを試しました。
String emailBody = "<table width=\"99%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"+
"<tr>"+
"<td align=\"center\" valign=\"top\" style = \"background-color:#ED1B24;\">"+
"<img src =\""+
"cid:image" + "\">" +
"</td>" +
"</tr>"+
"<tr>"+
"<td align=\"left\">"+
"<p>Hi "+firstname+"," + "</p></b>"+
"<p>A user account has been created for you, the user name will be your employee id</p></b>"+
"<p>Your Password: "+password+"</p></b>"+
"<p>Kindly change password at your convenience</p></b></b>"+
"<p>Regards,</p></b>"+
"<p>Admin Team</p>"+
"</td>"+
"</tr>"+
"</table>";
mailSession = Session.getDefaultInstance(emailProperties, null);
emailMessage = new MimeMessage(mailSession);
emailMessage.setFrom(new InternetAddress(data[0]));
emailMessage.addRecipient(Message.RecipientType.TO,
new InternetAddress(mail));
emailMessage.setSubject("Account created");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(emailBody, "text/html; charset=utf-8");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource(
"path");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<image>");
multipart.addBodyPart(messageBodyPart);
emailMessage.setContent(multipart);
私が提供しなければならないどのような値を把握カント、私は、要求が要求対象であるrequest.getServletContext()。getRealPathを(「/」)を使用してサーバにファイルのパスを与える試みサーブレットを追加し、最後にフォルダとファイル名を追加します。私はこれを行うと例外がスローされます。
ここにスタックトレースがあります。
javax.mail.MessagingException:メッセージの送信中にIOExceptionが発生しました。 ネストされた例外: java.io.FileNotFoundException:D:\ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Survey_services(アクセスが拒否されました) at com.sun.mail.smtp .SMTPTransport.sendMessage(SMTPTransport.java:1290) email.GmailClass.send(GmailClass.java:227) servlets.CreateUser.doPost(CreateUser.java:168) at javax.servlet.http.HttpServlet.service (HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomc at.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org。 apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) (org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)) at org.apache.catalina.valves.ErrorReportValve.invoke ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org (AbstractProtocol.java:625) at org.apache.tomcat.util.net。java.util.concurrent.ThreadPoolExecutor.runWorkerでorg.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.runでAprEndpoint $ SocketProcessor.doRun(AprEndpoint.java:2517) (AprEndpoint.java:2506) (ThreadPoolExecutor。 java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 発生原因:java.io.FileNotFoundException:D:\ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ Survey_services(Access拒否されました) at java.io.FileInputStream.open0(ネイティブメソッド) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.F ileInputStream。(FileInputStream.java:138) at javax.activation.FileDataSource.getInputStream(FileDataSource.java:97) at javax.activation.DataHandler.writeTo(DataHandler.java:305) at javax.mail.internet.MimeBodyPart .writeTo(MimeBodyPart.java:1645) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:961) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:553) at com.sun .mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:81) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889) at javax.activation.DataHandler.writeTo(DataHandler.java:317) at javax .mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1645) (javax。 mail.internet.MimeMessage.writeTo com.sun.mail.smtp.SMTPTransport.sendMessageで(MimeMessage.java:1850) (SMTPTransport.java:1241)より ... 25
すべてのヘルプは高く評価され。
ロードしようとしているイメージは、localhostのためオンラインでは動作しません。 – Jer
@ C0dekid私はその部分を理解しました。オンラインで作業するためには、何をすべきかを提案できますか? – Abhishek
イメージをオンラインサービスにアップロードできますか? – Jer