Örnek

MMS Göndermek İçin Bir MimeMessage Yaratılma Örneği

MMS, SMIL dili kullanılarak MIME formatı ile GSM operatörleri üzerinden gönderilebilmektedir. Bunun için SMIL ve diğer resim, ses dosyalarından bir MIME mesajı oluşturmanız gerekir. Aşağıda bir MIME mesajı oluşturan bir örnek görülmektedir:
import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MimeMessageGenerator {
	private File smil;
	private File[] files;	
	public MimeMessageGenerator(File smil,File[] files) {
		this.smil=smil;
		this.files=files;
	}	
	public MimeMessage generate() 
				throws MessagingException, IOException{
		Session session = Session.getDefaultInstance(new Properties());
		MimeMessage mimemessage = new MimeMessage(session);
		
		setDefaultMimetypesFileTypeMap();
		
		MimeMultipart mimeMultipart = new MimeMultipart("related");
		MimeBodyPart smilMimeBodyPart=createPart(smil);
		
		mimeMultipart.addBodyPart(smilMimeBodyPart);
		
		if(files!=null){
			for (File file : files) {
				MimeBodyPart fileMimeBodyPart=createPart(file);			
				mimeMultipart.addBodyPart(fileMimeBodyPart);
			}
		}		
		mimemessage.setContent(mimeMultipart);
		
		return mimemessage;
	}
	public String generateString() throws MessagingException, IOException {		
		MimeMessage mimeMessage=generate();
		
		ByteArrayOutputStream bais = new ByteArrayOutputStream();
		mimeMessage.writeTo(bais);
		
		byte[] arr = bais.toByteArray();
		
		StringBuffer mimeData = new StringBuffer();		
		for (int i = 0; i < arr.length; i++) {
			mimeData.append((char) arr[i]);
		}
		return mimeData.toString();		
	}	
	
	private MimeBodyPart createPart(File f) throws MessagingException{
		MimeBodyPart mimeBodyPart = new MimeBodyPart();
		
		FileDataSource ds = new FileDataSource(f);		
				
		DataHandler dh = new DataHandler(ds);
<br/>
		mimeBodyPart.setDataHandler(dh);
		mimeBodyPart.setFileName(f.getName());
		String cid = mimeBodyPart.getContentID();
		if (cid == null) {
			cid = mimeBodyPart.getFileName();
			mimeBodyPart.setHeader("Content-ID", '<' + cid + '>');
		}		
		return mimeBodyPart;
	}	
	private void setDefaultMimetypesFileTypeMap(){		
		MimetypesFileTypeMap map = new MimetypesFileTypeMap();		
		map.addMimeTypes("application/smil smil SMIL");
		FileTypeMap.setDefaultFileTypeMap(map);		
	}
MimeMessageGenerator sınıfı, bir smil dosyası ve eğer gerekiyorsa diğer dosya listesini (ses, txt, resim vb..) kurucuda almaktadır. generate methodu çağrıldığında MimeMessage nesnesi alınacaktır. Eğer String olarak isteniyorsa generateString kullanılabilir. setDefaultMimetypesFileTypeMap fonkisyonu smil içerik tipini tanıması için eklenmiştir.
createPart methodu bir dosyadan, MimeMessage'a eklenebilecek şekilde bir MimeBodyPart yaratmaktadır. Her dosya için (smil ve diğer dosya tipleri) MimeBodyPart yaratılacak ve MimeMultipart'a eklenecektir. MimeMultipart'da en son MimeMessage sınıfına verilecektir
zafer.teker , 10.10.2014

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir