2009-10-14 12 views
40

Şu anda, uygulamamız javax.mail.MailMessage kullanarak e-posta göndermek için bir javax.mail kullanır. Biz e-posta başlıklarını itibaren bu şekilde ayarlayın: Bu sadece iyi çalışır, ama biz yapmak istiyorumBir javax.mail.MimeMessage dosyasındaki adın mı ayarlanması?

Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress("[email protected]")); 

kullanıcı dostu biraz daha bölümünde "Kimden". Şu anda bir e-posta alan birisi, gelen kutunun "Gönderen" bölümünde "[email protected]" adresini görecektir. Bunun yerine, orada "Şirket XYZ" görmelerini isteriz. Bunun muhtemelen addHeader() yöntemiyle yapıldığını düşünüyorum, ancak başlık adının ne olacağından emin değilim.

cevap

89

Tamam, yararlı olurdu katılan TÜM sınıfları hakkında belgeleri okuyarak. Doğru sözdizimi olmalıdır

Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress("[email protected]", "Company XYZ")); 

Kaynak: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html

+2

O "Şirket XYZ <[email protected]>" Eğer kullanma izni verip vermediğini test değer olabilir IntenetAddress (String, boolean) yapıcısı, adres sözdizimini kesin olarak kontrol etmekle birlikte yine de kişisel bir isme sahiptir. – erickson

15

Bir dizesinde e + ismini saklamak istiyorsanız (kolay iki dize tutarak yerine): durumda iken ise

Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress("Company XYZ <[email protected]>")); 
+0

+1, bu çözüm ayrıca, "MimeMessage" örneğinin hiçbir zaman erişilemediği ve "InternetAdres" işlevinin doğrudan kullanılmadığı "SimpleMimeMessage" ile de çalışır. Sadece dizelerde çalışır. – Jagger

+0

Teşekkürler! işe yaradı!! – JRichardsz

0

sadece

MimeMessage m = new MimeMessage(session); 
m.setFrom(); 
kullanıldığı olsaydı bazı pop3 müşterileri için kodlama e-posta adresi takma ile ilgili sorunlar vardı ben \ u00FA gibi özel karakterler içeren yerelleştirilmiş metinleri kullanılır

onu çağırmak tarafından ayrı e-posta adresini ve takma adı ile çözülebilir:

MimeMessage m = new MimeMessage(session); 
      m.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"),"UTF8")); 

ref: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String,%20java.lang.String,%20java.lang.String)

İlgili konular