求问如何编写兼容各主流邮箱的HTML邮件
这些由站方发给会员的信件,往往纯文本格式已不能满足界面和交互的要
求,这时候我们就需要发送HTML页面。由于HTML邮件不是独立的HOST在本站的页面,是寄人篱下的。所以编写HTML邮件与编写HTML页面有很大
的不同。因为,各面向网民的主流邮箱都或多或少的会对它们接收到的HTML邮件在后台进行过滤。毫无疑问,JS代码是被严格过滤掉的,包括所有的事件监听
邮箱过滤的,能正常显示的HTML邮件。
我把邮箱分为两类:
第一类包括gmail、hotmail、sohu,这类邮箱,邮件内容是被布局在整个邮箱页面中的某个div中。
第二类,包括163、sina,这类邮箱,邮件内容被布局在独立的iframe中。
熟悉HTML的朋友都知道,iframe内容是作为独立的document,与父页面的元素和CSS是互不相干的,几乎可以作为一个独立的页面来对
待。而如果如果邮件内容是在div中,那么邮件内容是作为整个邮箱页面的一个组成部分。显然,以iframe作为展现方式的邮箱,对邮件内容就会宽容许
多,因为它给了你一个足够独立的表现空间。而div就不是那么客气了。试想一下,如果你在你的邮件里写上这么一句CSS,是不是整个邮箱的展现页面上字体
都变成20px而因此乱了套:
我们需要写兼容各邮箱的统一邮件模板,那么必然就要避开以上这种外联CSS写法,另外类似于float、position等成非正常内容流的style也会被过滤,假如你写了,很可能会影响到外部邮箱的表现。
下面我列出一些编写原则:1、全局规则之一,不要写
如何编写兼容各主流邮箱的HTML邮件
这些由站方发给会员的信件,往往纯文本格式已不能满足界面和交互的要求,这时候我们就
需要发送HTML 页面。由于HTML 邮件不是独立的HOST 在本站的页面,是寄人篱下的。所以
编写HTML 邮件与编写HTML 页面有很大的不同。因为,各面向网民的主流邮箱都或多或少的
会对它们接收到的HTML 邮件在后台进行过滤。毫无疑问,JS 代码是被严格过滤掉的,包括
所有的事件监听属性,如onclick、onmouseover,这是基于邮件安全性的考虑。不仅如此,
的HTML 邮件。
箱后台的过滤算法也不是那么容易可以让外人知道的。所以,我们只能通过前端展现,来推
sina 几个邮箱的分析,我把邮箱分为两类:
熟悉HTML 的朋友都知道,iframe 内容是作为独立的document,与父页面的元素和CSS 是互
不相干的,几乎可以作为一个独立的页面来对待。而如果如果邮件内容是在div 中,那么邮
件内容是作为整个邮箱页面的一个组成部分。显然,以iframe 作为展现方式的邮箱,对邮
件内容就会宽容许多,因为它给了你一个足够独立的表现空间。而div 就不是那么客气了。
试想一下,如果你在你的邮件里写上这么一句CSS,是不是整个邮箱的展现页面上字体都变
成20px 而因此乱了套:
我们需要写兼容各邮箱的统一邮件模板,那么必然就要避开以上这种外联CSS 写法,另外类
似于float、position 等成非正常内容流的style 也会被过滤,假如你写了,很可能会影响
到外部邮箱的表现。1、全局规则之一,不要写
发送html格式的邮件
发送html格式的邮件void jButton8_actionPerformed(ActionEvent e) {
try
{//此段代码用来发送带有html信息的邮件
Properties props = new Properties();
Authenticator auth = new Email_Autherticator();
props.put( "mail.smtp.host ",host);
props.put( "mail.smtp.auth ", "true ");
Session session = Session.getDefaultInstance(props,auth);
MimeMessage message = new MimeMessage(session);
//设置邮件正文
String htmltext= " h1 hello /h1 "+ " a href=\ " \ " target=\ "_blank\ " click me please! /a ";
message.setContent(htmltext, "text/html ");//text/plain设置邮件的格式因为是带有html文档的,所以用text/html格式
message.setSubject(mail_subject);
// message.setText(mail_body);在使用message.setContent()时候,好象不能用message.setText()
message.setHeader(mail_head_name,mail_head_value);
message.setSentDate(new Date());
Address address = new InternetAddress(mail_from, "sunxiaoming ");
message.setFrom(address);
Address toAddress = new InternetAddress(mail_to);
message.addRecipient(Message.RecipientType.TO,toAddress);
Transport.send(message);
System.out.println( "send ok! ");
}
catch(Exception ex)
{
System.out.println( "faild "+ex);
}
}
void jButton9_actionPerformed(ActionEvent e) {
try
{//此段代码用来发送带有图片的邮件
String file = "./20020423/test.gif ";
Properties props = new Properties();
Authenticator auth = new Email_Autherticator();
props.put( "mail.smtp.host ",host);
props.put( "mail.smtp.auth ", "true ");
Session session = Session.getDefaultInstance(props,auth);
MimeMessage message = new MimeMessage(session);
message.setSubject( "Embedded Image ");
Address address = new InternetAddress(mail_from, "sunxiaoming ");
message.setFrom(address);
Address toAddress = new InternetAddress(mail_to);
message.addRecipient(Message.RecipientType.TO,toAddress);
message.setHeader(mail_head_name,mail_head_value);
message.setSentDate(new Date());
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = " h1 hello /h1 "+ " img src=\ "cid:memememe\ " ";//加入图片
messageBodyPart.setContent(htmlText, "text/html ");
//原理同发送附件一样,将邮件看成有多个部分组成的,先设置每一个部分,然后再全部将它们合起来即可。
//Create a related multi-part to combine the parts
MimeMultipart multipart = new MimeMultipart( "related ");
multipart.addBodyPart(messageBodyPart);
//Create part for the image
messageBodyPart = new MimeBodyPart();
//Fetch the image and associate to part
DataSource fds = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader( "Content-ID ", "memememe ");
//Add part to multi-part
multipart.addBodyPart(messageBodyPart);
//Associate multi-part with message
message.setContent(multipart);
Transport.send(message);
System.out.println( "send ok! ");
}
catch(Exception ex)
{
System.out.println( "faild "+ex);
}
}
void jButton7_actionPerformed(ActionEvent e) {
try
{//该程序用来接受带有html信息的邮件
Properties props = System.getProperties();
Authenticator auth = new Email_Autherticator();
props.put( "mail.smtp.host ",host);
props.put( "mail.smtp.auth ", "true ");
Session session = Session.getDefaultInstance(props,auth);
Store store = session.getStore( "pop3 ");
store.connect(host,username,password);
//After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it:
Folder folder = store.getFolder( "INBOX ");
folder.open(Folder.READ_WRITE);
Message message[] = folder.getMessages();
for (int i=0,n=message.length;i n;i++)
// for (int i=0,n=1;i n;i++)//only one letter received from inbox //for debug
{
String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal();
String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress();
System.out.println( "From: "+out_from_person+ "\t ");
System.out.println( "Address: "+out_from_address+ "\t ");
String out_subject = message[i].getSubject();
System.out.println( "Subject: "+out_subject+ "\t ");
//获取邮件的信息,并且对其每一部分进行操作
Part messagePart = message[i];
Object out_content = messagePart.getContent();
if (out_content instanceof Multipart)
{
messagePart = ((Multipart)out_content).getBodyPart(0);
System.out.println( "[ Multipart Message ] ");
}
String out_content_type = messagePart.getContentType();
System.out.println( "CONTENT: "+out_content_type);
jEditorPane1.setText( " ");//将其显示在jEditorPanel上
jEditorPane1.setContentType( "text/html ");
jEditorPane1.setText((String)out_content);
jEditorPane1.setEditable(false);
/*
if (out_content_type.startsWith( "text/plain ") || out_content_type.startsWith( "text/html "))
{
InputStream ipstm = messagePart.getInputStream();
BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm));
String thisLine = bufreader.readLine();
while (thisLine != null)
{
System.out.println( "thisLine: "+thisLine);
thisLine = bufreader.readLine();
}
}
*/
System.out.println( "------------------------------------------------------------ ");
message[i].setFlag(Flags.Flag.DELETED,true);
}
folder.close(true);
store.close();
}
catch(Exception ej2)
{
System.out.println(ej2);
}
}
怎么在html中创建超级链接和电子邮件链接
1、首先新建一个首页,用什么软件写无所谓啊。
2、然后在body随便写一个元素,我写一个P吧
3、然后在里面写一个a标签,里面写一个href【超文本引用】
4、接着写上你的需要链接的邮箱地址
5、测试一下,是邮箱打开就行了
6、如果想在收件人地址栏中同时输入多个电子邮件地址时,那么就可以使用形如“mailto: 123456789@qq.com;987654321@qq.com”这样的语句,记住每个电子邮件之间用“;”隔开,这样当浏览者单击由该语句创建的电子邮件超级连接时,在弹出的邮件编辑窗口的收件人地址栏中同时会出现123456789@qq.com;987654321@qq.com这样的收件人地址,浏览者就能同时向这些人发送电子邮件。
7、同理,还可以写成发短信什么的,用一个sms就好啦,很多连接我就不给大家一一演示啦~
拓展资料
超文本标记语言,标准通用标记语言下的一个应用。
“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
参考资料:百度百科-html
HTML怎么创建更复杂的邮箱链接?
如果要使用mailto同时实现多个功能的话,第一个功能必须以“?”开头,后面的每一个功能都以“”开头;另外,cc后为抄送地址,bcc后为暗送地址,subject后为邮件的主题,body后为邮件的内容。
百度上有...
求问如何编写兼容各主流邮箱的HTML邮件这些由站方发给会员的信件,往往纯文本格式已不能满足界面和交互的要求,这时候我们就需要发送HTML页面。由于HTML邮件不是独立的HOST在本站的页面,是寄人篱下的。所以编写HTML邮件与编写HT
= new InternetAddress(mail_to); message.addRecipient(Message.RecipientTy