Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java邮件嵌入URL_Java_Jsp_Jakarta Mail_Scriptlet - Fatal编程技术网

Java邮件嵌入URL

Java邮件嵌入URL,java,jsp,jakarta-mail,scriptlet,Java,Jsp,Jakarta Mail,Scriptlet,当我将HTML URL添加到电子邮件正文中时,它不会重定向到首选位置。这是片段,请告诉我我做错了什么 #location variable contains the URL StringBuffer body = new StringBuffer("<html><body>Hi, <br/><br/>"); body.append("<p>"+cmts+"</p>"); #both the ways are not wor

当我将HTML URL添加到电子邮件正文中时,它不会重定向到首选位置。这是片段,请告诉我我做错了什么

#location variable contains the URL
StringBuffer body = new StringBuffer("<html><body>Hi, <br/><br/>");
body.append("<p>"+cmts+"</p>");

#both the ways are not working, how to construct proper URL 
body.append("<br/><br/><a href=\"+location+\">" + location + "</a><br/>");
body.append("<br/><br/><a href="+location+">" +location + "</a><br/>");

#this is working as link only in OUTLOOK, but in other mail client it shows as plain text
body.append("<br/><br/>"+location);
#位置变量包含URL
StringBuffer主体=新的StringBuffer(“嗨,

”); 正文.附加(“”+cmts+“

”); #这两种方法都不起作用,如何构造合适的URL 正文.追加(“


”); 正文.追加(“


”); #此链接仅在OUTLOOK中用作链接,但在其他邮件客户端中显示为纯文本 body.append(“

”+位置);
网址:


可以通过多种方式在javamail中添加href,例如:

1)
InternetHeaders headers=新InternetHeaders();
headers.addHeader(“内容类型”,“文本/html;字符集=UTF-8”);
字符串aHref=“一些文本\n”+文本+
“\n”


2)
String aHref=“一些文本”+text+
“\n”;
messageBodyPart.setText(aHref,“UTF-8”,“html”)

更新:

确保内容类型设置为
html
text/html
,因为
text/plain
将仅显示为文本

引号似乎有问题。尝试:

body.append("<br/><br/><a href=\""+location+"\">" + location + "</a><br/>");
body.append(


);
您能添加一个您正在使用的URL的示例吗?首先检查这个URL,不使用javaMail,也不检查它是否正常工作?我似乎不知道work@Ghayel请参考代码段中的最后一条语句,它就是这样工作的。但当我在outlook以外的其他客户机中查看时,它显示为纯文本bcoz,而不是包含在其中。我希望它在标记中。当我传递静态url时,它工作,但当我传递包含url的变量时,它不工作,我认为我必须正确地使这个语句
body.append(


变量的值是否已以“http://”开头?如果是这样的话,就像上面的例子一样,添加额外的“http://”也不会有帮助。构造消息do message.writeTo(新文件输出流(“msg.txt”))后;并向我们展示msg.txt中的内容。另外,在包含URL之前,请不要对其进行URL编码。很抱歉,回复太晚。这里是休息日,正如您所说,它工作正常,但它正在重定向到变量名,而不是URL。请检查这张图片@GeekExplorer为什么不在没有%2或类似标志的情况下传递URL?要么在代码中提供简单的URL,比如,要么使用java.net.URLEncoded.encode和java.net.URLEncoded.decoded。很抱歉,回复太晚了。今天是休息日,我按照你的建议尝试了。我收到了成功发送的邮件。请点击这里,它将重定向到变量名而不是URL。我猜字符串的引号与HTML中的引号混淆了。尝试在HTML中使用单引号来帮助区分两者,例如:body.append(



);我在pilot7上试过了,没用。我是否必须对URL进行编码,bcoz当我将URL添加到电子邮件正文时,它显示邮件已成功发送,但未发送邮件,如果我注释掉URL,它将发送邮件。在过去的几周里被困在这里无法解决问题:(请在您收到的电子邮件中发布HTML,我会看一看。
嗨,

示例消息



如果您想在此仪表板上发表评论/注释,请单击以下链接!!!





谢谢您
超级用户
@pilot7 plz查看一下。