Ê×Ò³ | Óʼþ×ÊѶ | ¼¼Êõ½Ì³Ì | ½â¾ö·½°¸ | ²úÆ·ÆÀ²â | ÓʼþÈ˲Š| Óʼþ²©¿Í | ÓʼþϵͳÂÛ̳ | Èí¼þÏÂÔØ | ÓʼþÖÜ¿¯ | ÈȵãרÌâ | ¹¤¾ß
ÍøÂç¼¼Êõ | ²Ù×÷ϵͳ | Óʼþϵͳ | ¿Í»§¶Ë | µç×ÓÓÊÏä | ·´À¬»øÓʼþ | Óʼþ°²È« | ÓʼþÓªÏú | ÒÆ¶¯µçÓÊ | ÓʼþÈí¼þÏÂÔØ | µç×ÓÊéÏÂÔØ

Óʼþ·þÎñÆ÷

¼¼ÊõÇ°ÑØ | Exchange | Domino | Sendmail | Postfix | Qmail | IMail | MDaemon | Foxmail | James | Kerio | JavaMail | WinMail | Winwebmail | Merak | CMailServer | ½ðµÑ | ÆäËü | ÓʼþÓ뿪·¢ |
Ê×Ò³ > Óʼþ·þÎñÆ÷ > JavaMail > javamailдµÄ½âÎöMimeMessageµÄ³ÌÐò > ÕýÎÄ

javamailдµÄ½âÎöMimeMessageµÄ³ÌÐò

³ö´¦£ºjavaResearch ×÷Õߣºwwp_1124 ʱ¼ä£º2005-7-12 14:13:00

×Ô´ÓÉÏ´ÎÔÚÂÛ̳·¢±íÁËÓÃJavaMailÀ´·¢ËÍÓʼþµÄ³ÌÐòÒÔºó£¬Ò»Ö±Ã¦ÓÚѧУÀïÃæµÄÊÂÇ飬ûÓÐʱ¼ä¾²ÏÂÐÄÀ´Ð´½ÓÊÕÓʼþµÄ³ÌÐò£¬ÏÖÔÚѧУÀïµÄÊÂÇéÖÕÓÚæÍêÁË£¬¿ÉÒÔ¾²ÏÂÐÄÀï×ö×Ô¼ºÏ²»¶×öµÄÊÂÇéÁË£¬ÕâÖָоõÕæµÄºÜºÃ£¡
¶ÔÎÒ×Ô¼º¶øÑÔ£¬¸Õ¿ªÊ¼ÔÚÓÃJavaMailÀ´±àдÊÕÓʼþµÄ³ÌÐòʱ×îÖØÒªºÍ×îÄѵÄÒªÊý½âÎö¸½¼þºÍÓʼþÕýÎĵIJ¿·Ö£¬ÒòΪMimeÀàÐÍʵÔÚÊÇÌ«¶àÁË£¡ÏÂÃæµÄÕâ¶Î´úÂëÊÇÎÒ×Ô¼ºÑ§Ï°JavaMailµÄÒ»¶ÎÌå»á£¬¹©´ó¼ÒÀ´²Î¿¼£¨Çë¸ßÊÖÖ¸½Ì£¬ÓÐʲô¸üºÃµÄ°ì·¨£¬Çë»Ø¸´´ËÎÄÕÂ),¾ßÌå´úÂëÈçÏ£º
-------------------------------------------------------------------------------
package coffeecatwebmail;

import java.io.*;
import java.text.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class PraseMimeMessage{
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; //¸½¼þÏÂÔØºóµÄ´æ·ÅĿ¼
private StringBuffer bodytext = new StringBuffer(); //´æ·ÅÓʼþÄÚÈݵÄStringBuffer¶ÔÏó
private String dateformat = "yy-MM-dd HH:mm"; //ĬÈϵÄÈÕǰÏÔʾ¸ñʽ

/**
* ¹¹Ô캯Êý,³õʼ»¯Ò»¸öMimeMessage¶ÔÏó
*/
public PraseMimeMessage(){}
public PraseMimeMessage(MimeMessage mimeMessage){
this.mimeMessage = mimeMessage;
System.out.println("create a PraseMimeMessage object........");
}

public void setMimeMessage(MimeMessage mimeMessage){
this.mimeMessage = mimeMessage;
}

/**
* »ñµÃ·¢¼þÈ˵ĵØÖ·ºÍÐÕÃû
*/
public String getFrom()throws Exception{
InternetAddress address[] = (InternetAddress[])mimeMessage.getFrom();
String from = address[0].getAddress();
if(from == null) from="";
String personal = address[0].getPersonal();
if(personal == null) personal="";
String fromaddr = personal+"<"+from+">";
return fromaddr;
}

/**
* »ñµÃÓʼþµÄÊÕ¼þÈË£¬³­ËÍ£¬ºÍÃÜË͵ĵØÖ·ºÍÐÕÃû£¬¸ù¾ÝËù´«µÝµÄ²ÎÊýµÄ²»Í¬
* "to"----ÊÕ¼þÈË "cc"---³­ËÍÈ˵ØÖ· "bcc"---ÃÜËÍÈ˵ØÖ·
*/
public String getMailAddress(String type)throws Exception{
String mailaddr = "";
String addtype = type.toUpperCase();
InternetAddress []address = null;
if(addtype.equals("TO") || addtype.equals("CC") ||addtype.equals("BCC")){
if(addtype.equals("TO")){
address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.TO);
}else if(addtype.equals("CC")){
address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.CC);
}else{
address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.BCC);
}
if(address != null){
for(int i=0;i String email=address[i].getAddress();
if(email==null) email="";
else{
email=MimeUtility.decodeText(email);
}
String personal=address[i].getPersonal();
if(personal==null) personal="";
else{
personal=MimeUtility.decodeText(personal);
}
String compositeto=personal+"<"+email+">";
mailaddr+=","+compositeto;
}
mailaddr=mailaddr.substring(1);
}
}else{
throw new Exception("Error emailaddr type!");
}
return mailaddr;
}

/**
* »ñµÃÓʼþÖ÷Ìâ
*/
public String getSubject()throws MessagingException{
String subject = "";
try{
subject = MimeUtility.decodeText(mimeMessage.getSubject());
if(subject == null) subject="";
}catch(Exception exce){
}
return subject;
}

/**
* »ñµÃÓʼþ·¢ËÍÈÕÆÚ
*/
public String getSentDate()throws Exception{
Date sentdate = mimeMessage.getSentDate();
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return format.format(sentdate);
}

/**
* »ñµÃÓʼþÕýÎÄÄÚÈÝ
*/
public String getBodyText(){
return bodytext.toString();
}

/**
* ½âÎöÓʼþ£¬°ÑµÃµ½µÄÓʼþÄÚÈݱ£´æµ½Ò»¸öStringBuffer¶ÔÏóÖУ¬½âÎöÓʼþ
* Ö÷ÒªÊǸù¾ÝMimeTypeÀàÐ͵IJ»Í¬Ö´Ðв»Í¬µÄ²Ù×÷£¬Ò»²½Ò»²½µÄ½âÎö
*/
public void getMailContent(Part part)throws Exception{
String contenttype = part.getContentType();
int nameindex = contenttype.indexOf("name");
boolean conname =false;
if(nameindex != -1) conname=true;

System.out.println("CONTENTTYPE: "+contenttype);
if(part.isMimeType("text/plain") && !conname){
bodytext.append((String)part.getContent());
}else if(part.isMimeType("text/html") && !conname){
bodytext.append((String)part.getContent());
}else if(part.isMimeType("multipart/*")){
Multipart multipart = (Multipart)part.getContent();
int counts = multipart.getCount();
for(int i=0;i getMailContent(multipart.getBodyPart(i));
}
}else if(part.isMimeType("message/rfc822")){
getMailContent((Part)part.getContent());
}else{}
}

/**
* ÅжϴËÓʼþÊÇ·ñÐèÒª»ØÖ´£¬Èç¹ûÐèÒª»ØÖ´·µ»Ø"true",·ñÔò·µ»Ø"false"
*/
public boolean getReplySign()throws MessagingException{
boolean replysign = false;
String needreply[] = mimeMessage.getHeader("Disposition-Notification-To");
if(needreply != null){
replysign = true;
}
return replysign;
}

/**
* »ñµÃ´ËÓʼþµÄMessage-ID
*/
public String getMessageId()throws MessagingException{
return mimeMessage.getMessageID();
}

/**
* ¡¾ÅжϴËÓʼþÊÇ·ñÒѶÁ£¬Èç¹ûδ¶Á·µ»Ø·µ»Øfalse,·´Ö®·µ»Øtrue¡¿
*/
public boolean isNew()throws MessagingException{
boolean isnew = false;
Flags flags = ((Message)mimeMessage).getFlags();
Flags.Flag []flag = flags.getSystemFlags();
System.out.println("flagss length: "+flag.length);
for(int i=0;i if(flag[i] == Flags.Flag.SEEN){
isnew=true;
System.out.println("seen Message.......");
break;
}
}
return isnew;
}

/**
* ÅжϴËÓʼþÊÇ·ñ°üº¬¸½¼þ
*/
public boolean isContainAttach(Part part)throws Exception{
boolean attachflag = false;
String contentType = part.getContentType();
if(part.isMimeType("multipart/*")){
Multipart mp = (Multipart)part.getContent();
for(int i=0;i BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if((disposition != null) &&((disposition.equals(Part.ATTACHMENT)) ||(disposition.equals(Part.INLINE))))
attachflag = true;
else if(mpart.isMimeType("multipart/*")){
attachflag = isContainAttach((Part)mpart);
}else{
String contype = mpart.getContentType();
if(contype.toLowerCase().indexOf("application") != -1) attachflag=true;
if(contype.toLowerCase().indexOf("name") != -1) attachflag=true;
}
}
}else if(part.isMimeType("message/rfc822")){
attachflag = isContainAttach((Part)part.getContent());
}
return attachflag;
}

/**
* ¡¾±£´æ¸½¼þ¡¿
*/
public void saveAttachMent(Part part)throws Exception{
String fileName = "";
if(part.isMimeType("multipart/*")){
Multipart mp = (Multipart)part.getContent();
for(int i=0;i BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if((disposition != null) &&((disposition.equals(Part.ATTACHMENT)) ||(disposition.equals(Part.INLINE)))){
fileName = mpart.getFileName();
if(fileName.toLowerCase().indexOf("gb2312") != -1){
fileName = MimeUtility.decodeText(fileName);
}
saveFile(fileName,mpart.getInputStream());
}else if(mpart.isMimeType("multipart/*")){
saveAttachMent(mpart);
}else{
fileName = mpart.getFileName();
if((fileName != null) && (fileName.toLowerCase().indexOf("GB2312") != -1)){
fileName=MimeUtility.decodeText(fileName);
saveFile(fileName,mpart.getInputStream());
}
}
}
}else if(part.isMimeType("message/rfc822")){
saveAttachMent((Part)part.getContent());
}
}

/**
* ¡¾ÉèÖø½¼þ´æ·Å·¾¶¡¿
*/
public void setAttachPath(String attachpath){
this.saveAttachPath = attachpath;
}

/**
* ¡¾ÉèÖÃÈÕÆÚÏÔʾ¸ñʽ¡¿
*/
public void setDateFormat(String format)throws Exception{
this.dateformat = format;
}

/**
* ¡¾»ñµÃ¸½¼þ´æ·Å·¾¶¡¿
*/
public String getAttachPath(){
return saveAttachPath;
}

/**
* ¡¾ÕæÕýµÄ±£´æ¸½¼þµ½Ö¸¶¨Ä¿Â¼Àï¡¿
*/
private void saveFile(String fileName,InputStream in)throws Exception{
String osName = System.getProperty("os.name");
String storedir = getAttachPath();
String separator = "";
if(osName == null) osName="";
if(osName.toLowerCase().indexOf("win") != -1){
separator = "\\"
if(storedir == null || storedir.equals("")) storedir="c:\\tmp";
}else{
separator = "/";
storedir = "/tmp";
}
File storefile = new File(storedir+separator+fileName);
System.out.println("storefiles path: "+storefile.toString());
//for(int i=0;storefile.exists();i++){
//storefile = new File(storedir+separator+fileName+i);
//}
BufferedOutputStream bos = null;
BufferedInputStream bis = null;
try{
bos = new BufferedOutputStream(new FileOutputStream(storefile));
bis = new BufferedInputStream(in);
int c;
while((c=bis.read()) != -1){
bos.write(c);
bos.flush();
}
}catch(Exception exception){
exception.printStackTrace();
throw new Exception("Îļþ±£´æÊ§°Ü!");
}finally{
bos.close();
bis.close();
}
}

/**
* PraseMimeMessageÀà²âÊÔ
*/
public static void main(String args[])throws Exception{
String host = "Ö÷»úÃû/ip"; //¡¾pop.mail.yahoo.com.cn¡¿
String username ="Óû§Ãû"; //¡¾wwp_1124¡¿
String password ="ÃÜÂë"; //¡¾........¡¿

Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("pop3");
store.connect(host, username, password);

Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
System.out.println("Messagess length: "+message.length);
PraseMimeMessage pmm = null;
for(int i=0;i pmm = new PraseMimeMessage((MimeMessage)message[i]);
System.out.println("Message "+i+" subject: "+pmm.getSubject());
System.out.println("Message "+i+" sentdate: "+pmm.getSentDate());
System.out.println("Message "+i+" replysign: "+pmm.getReplySign());
System.out.println("Message "+i+" hasRead: "+pmm.isNew());
System.out.println("Message "+i+" containAttachment: "+pmm.isContainAttach((Part)message[i]));
System.out.println("Message "+i+" form: "+pmm.getFrom());
System.out.println("Message "+i+" to: "+pmm.getMailAddress("to"));
System.out.println("Message "+i+" cc: "+pmm.getMailAddress("cc"));
System.out.println("Message "+i+" bcc: "+pmm.getMailAddress("bcc"));
pmm.setDateFormat("yyÄêMMÔÂddÈÕ HH:mm");
System.out.println("Message "+i+" sentdate: "+pmm.getSentDate());
System.out.println("Message "+i+" Message-ID: "+pmm.getMessageId());
pmm.getMailContent((Part)message[i]);
System.out.println("Message "+i+" bodycontent: \r\n"+pmm.getBodyText());
pmm.setAttachPath("c:\\tmp\\coffeecat1124");
pmm.saveAttachMent((Part)message[i]);
}
}
}


-------------------------------------------------------------------------------
ÉÏÃæ¾ÍÊÇÓÃJavaMailÀ´½âÎöMimeMessageµÄ¾ßÌå³ÌÐò´úÂ룬¾ßÌåʹÓ÷½·¨²Î¿¼main·½·¨ÀïµÄ²âÊÔ´úÂ룬Çë´ó¼ÒÔÚ¿´¹ýÖ®Óà¶àÌᱦ¹óµÄÒâ¼û£¬¹²Í¬Ñ§Ï°£¬¹²Í¬³É³¤£¡£¡
    
,
Ïà¹ØÎÄÕ ÈÈÃÅÎÄÕÂ
  • JavaMail³£¼ûÎÊÌâÖ®°²×°ºÍÅäÖÃÎÊÌâ½â´ð
  • ͨ¹ýJavaMail·ÃÎÊHotmailÓÊÏä
  • JavaMailÖ®POP3ЭÒéÅжÏÐÂÓʼþµÄ˼·
  • JavaMailʵÏÖÓʼþÌØ¿ìרµÝ
  • JavaMail Ö® ¶Å¾øÓʼþÂÒÂë
  • ÀûÓÃJavaMailÊÕ/·¢GmailÓʼþ(SSL)
  • Javamail´¦Àíunicode-1-1-utf-7±àÂëµÄÓʼþ
  • ÓÃjavamailÊÕÈ¡hotmailµÄÍËÐÅ
  • ¼ò»¯JavaMail£ºÐ¡ÇÉ Jakarta Commons-Email
  • JavaMail APIϸ½ÚÏêϸ½âÎö´óÈ«
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®¶þ
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®Ò»
  • ÔÚJSPÖÐʹÓÃJavaMail
  • ͨ¹ýJavaMail·ÃÎÊHotmailÓÊÏä
  • JavaMail APIϸ½ÚÏêϸ½âÎö´óÈ«
  • ÀûÓÃJavaMailÊÕ/·¢GmailÓʼþ(SSL)
  • JavaMailÖ®POP3ЭÒéÅжÏÐÂÓʼþµÄ˼·
  • javamail·¢ËÍÓʼþ
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®Ò»
  • JavaMailʵÏÖÓʼþÌØ¿ìרµÝ
  • Javamail²Ù×÷Ö¸ÄÏ£ºÊµÀý´úÂë½âÎö
  • JavaMail Ö® ¶Å¾øÓʼþÂÒÂë
  • ¼ò»¯JavaMail£ºÐ¡ÇÉ Jakarta Commons-Email
  • Javaµç×ÓÓʼþ
  • ×ÔÓÉ¹ã¸æÇø
    ¡¡
     
    ×îÐÂÈí¼þÏÂÔØ
  • ORF Enterprise Edition 4.2 Õýʽ°æ
  • WinWebMail 3.7.7.3 ±ê×¼°æ
  • WinWebMail 3.7.7.3 ÆóÒµ°æ
  • BMailì÷ÓÊ
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ¼..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NETÏÂÔØ
  • symantec10.1»ù±¾°²×°¼°ÅäÖÃÊÓÆµ½Ì³Ì
  • Backup Exec System RecoveryÖ®±¸·ÝÊÓÆ..
  • ½ñÈÕÓʼþ¼¼ÊõÎÄÕÂ
  • ÃÀ´óѧÉúÇÖÈëÅåÁÖÖݳ¤¸öÈËÓʼþÕË»§±»´þ²¶
  • ˼¿ÆIronPort·¢²¼Ðµç×ÓÓʼþ°²È«É豸
  • Éî¸û"Èí¼þ+·þÎñ" ΢Èí300³ÇÊÐѲչî£ÓÊ
  • ´ÓºÚ¿Í³£Óù¥»÷Êֶο´WEBÓ¦Ó÷À»¤
  • ÏûÏ¢ÈËʿ͸¶ÑÅ»¢ÓëAOLºÏ²¢Ï¸½Ú½«ÓÚ±¾Ô..
  • ¹È¸èÌṩµÄµç×ÓÓʼþ´æµµÊ±¼äÑÓ³¤ÎªÊ®Äê
  • ÑÅ»¢½«ÔÚÓÊÏä·þÎñÖÐÕûºÏаæÔÚÏßÈÕÀú
  • 9ÔÂÀ¬»øÓʼþ×ÜÁ¿¼õÉÙ ÓëISPµ¹±ÕÓйØ
  • À¬»øÓʼþ·¢Õ¹µÄËÄ´óÇ÷ÊÆ
  • º«¹úÒéÔ±³ÆÖйúºÚ¿Íð³äÇàÍß̨·¢ËͲ¡¶¾..
  • VistaÄÑ³ÉÆøºò Windows XPÊÙÃü±»ÑÓ³¤
  • ÈüÃÅÌú¿ËÉý¼¶DLP²úÆ·¼°·´À¬»øÓʼþÍø¹Ø
  • ×îÐÂרÌâ
  • Sendmail ÓʼþϵͳÅäÖÃ
  • ×齨Exchange 2003Óʼþϵͳ
  • Windows Server 2008 רÌâ
  • ORF ·´À¬»øÓʼþϵͳ
  • Exchange Server 2007 רÌâ
  • ISA Server 2006 ½Ì³ÌרÌâ
  • Windows Vista ¼¼ÊõרÌâ
  • ¡°ºÚÝ®¡±£¨BlackBerry£©×¨Ìâ
  • ÒÆ¶¯µç×ÓÓʼþרÌâ
  • Apache James רÌâ
  • IMail Server ²Ù×÷Ö¸ÄÏ
  • ISA Server 2004 ʹÓÃרÌâ
  • ·ÖÀർº½
    ÓʼþÐÂÎÅ×ÊѶ:
    ITÒµ½ç | Óʼþ·þÎñÆ÷ | ÓʼþȤÎÅ | ÒÆ¶¯µçÓÊ
    µç×ÓÓÊÏä | ·´À¬»øÓʼþ|Óʼþ¿Í»§¶Ë|ÍøÂ簲ȫ
    ÐÐÒµÊý¾Ý | ÓʼþÈËÎï | ÍøÕ¾¹«¸æ | ÐÐÒµ·¨¹æ
    ÍøÂç¼¼Êõ:
    ÓʼþÔ­Àí | ÍøÂçЭÒé | ÍøÂç¹ÜÀí | ´«Êä½éÖÊ
    Ïß·½ÓÈë | ·ÓÉ½Ó¿Ú | Óʼþ´æ´¢ | »ªÎª3Com
    CISCO¼¼Êõ | ÍøÂçÓë·þÎñÆ÷Ó²¼þ
    ²Ù×÷ϵͳ:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | ÆäËü²Ù×÷ϵͳ
    Óʼþ·þÎñÆ÷:
    ³ÌÐòÓ뿪·¢ | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    ½ðµÑÓʼþϵͳ | ÆäËü |
    ·´À¬»øÓʼþ:
    ×ÛÊö| ¿Í»§¶Ë·´À¬»øÓʼþ|·þÎñÆ÷¶Ë·´À¬»øÓʼþ
    Óʼþ¿Í»§¶ËÈí¼þ:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | À×Äñ | Eudora |Becky! |Pegasus
    IncrediMail |ÆäËü
    µç×ÓÓÊÏä: ¸öÈËÓÊÏä | ÆóÒµÓÊÏä |Gmail
    ÒÆ¶¯µç×ÓÓʼþ:·þÎñÆ÷ | ¿Í»§¶Ë | ¼¼ÊõÇ°ÑØ
    ÓʼþÍøÂ簲ȫ:
    Èí¼þ©¶´ | °²È«ÖªÊ¶ | ²¡¶¾¹«¸æ |·À»ðǽ
    ¹¥·À¼¼Êõ | ²¡¶¾²éɱ| ISA | Êý×ÖÇ©Ãû
    ÓʼþÓªÏú:
    EmailÓªÏú | ÍøÂçÓªÏú | ÓªÏú¼¼ÇÉ |ÓªÏú°¸Àý
    ÓʼþÈ˲Å:ÕÐÆ¸ | Ö°³¡ | Åàѵ | Ö¸ÄÏ | Ö°³¡
    ½â¾ö·½°¸:
    Óʼþϵͳ|·´À¬»øÓʼþ |°²È« |ÒÆ¶¯µçÓÊ |Õбê
    ²úÆ·ÆÀ²â:
    Óʼþϵͳ |·´À¬»øÓʼþ |ÓÊÏä |°²È« |¿Í»§¶Ë
    ¹ã¸æÁªÏµ | ºÏ×÷ÁªÏµ | ¹ØÓÚÎÒÃÇ | ÁªÏµÎÒÃÇ | ·±ówÖÐÎÄ
    °æÈ¨ËùÓУºÓʼþ¼¼Êõ×ÊÑ¶Íø©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   ÔÁICP±¸05009143ºÅ