本文整理了Java中javax.mail.internet.MimeMessage
类的一些代码示例,展示了MimeMessage
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MimeMessage
类的具体详情如下:
包路径:javax.mail.internet.MimeMessage
类名称:MimeMessage
[英]This class represents a MIME style email message. It implements the Message
abstract class and the MimePart
interface.
Clients wanting to create new MIME style messages will instantiate an empty MimeMessage object and then fill it with appropriate attributes and content.
Service providers that implement MIME compliant backend stores may want to subclass MimeMessage and override certain methods to provide specific implementations. The simplest case is probably a provider that generates a MIME style input stream and leaves the parsing of the stream to this class.
MimeMessage uses the InternetHeaders
class to parse and store the top level RFC 822 headers of a message.
The mail.mime.address.strict
session property controls the parsing of address headers. By default, strict parsing of address headers is done. If this property is set to "false"
, strict parsing is not done and many illegal addresses that sometimes occur in real messages are allowed. See the InternetAddress
class for details.
A note on RFC 822 and MIME headers
RFC 822 header fields must contain only US-ASCII characters. MIME allows non ASCII characters to be present in certain portions of certain headers, by encoding those characters. RFC 2047 specifies the rules for doing this. The MimeUtility class provided in this package can be used to to achieve this. Callers of the setHeader
, addHeader
, and addHeaderLine
methods are responsible for enforcing the MIME requirements for the specified headers. In addition, these header fields must be folded (wrapped) before being sent if they exceed the line length limitation for the transport (1000 bytes for SMTP). Received headers may have been folded. The application is responsible for folding and unfolding headers as appropriate.
[中]此类表示MIME样式的电子邮件消息。它实现Message
抽象类和MimePart
接口。
想要创建新MIME风格消息的客户端将实例化一个空的MimeMessage对象,然后用适当的属性和内容填充它。
实现MIME兼容后端存储的服务提供商可能希望将MimeMessage子类化,并覆盖某些方法以提供特定的实现。最简单的情况可能是一个提供程序,它生成一个MIME样式的输入流,并将流的解析留给这个类。
MimeMessage使用InternetHeaders
类来解析和存储消息的顶级RFC 822头。mail.mime.address.strict
会话属性控制地址头的解析。默认情况下,会对地址头进行严格的解析。如果此属性设置为"false"
,则不会进行严格的解析,并且允许在实际消息中有时出现许多非法地址。有关详细信息,请参见InternetAddress
类。
关于rfc822和MIME头的一点注记
RFC 822标头字段必须仅包含US-ASCII字符。MIME通过对非ASCII字符进行编码,允许非ASCII字符出现在某些标头的某些部分中。RFC 2047规定了执行此操作的规则。这个包中提供的MimeUtility类可以用来实现这一点。setHeader
、addHeader
和addHeaderLine
方法的调用方负责对指定的头强制执行MIME要求。此外,如果这些头字段超过传输的行长度限制(SMTP为1000字节),则在发送前必须折叠(包装)这些头字段。收到的标题可能已折叠。应用程序负责根据需要折叠和展开标题。
代码示例来源:origin: networknt/light-4j
/**
* Send email with a string content.
*
* @param to destination email address
* @param subject email subject
* @param content email content
* @throws MessagingException message exception
*/
public void sendMail (String to, String subject, String content) throws MessagingException {
Properties props = new Properties();
props.put("mail.smtp.user", emailConfg.getUser());
props.put("mail.smtp.host", emailConfg.getHost());
props.put("mail.smtp.port", emailConfg.getPort());
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.debug", emailConfg.getDebug());
props.put("mail.smtp.auth", emailConfg.getAuth());
props.put("mail.smtp.ssl.trust", emailConfg.host);
SMTPAuthenticator auth = new SMTPAuthenticator(emailConfg.getUser(), (String)secret.get(SecretConstants.EMAIL_PASSWORD));
Session session = Session.getInstance(props, auth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailConfg.getUser()));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setContent(content, "text/html");
// Send message
Transport.send(message);
if(logger.isInfoEnabled()) logger.info("An email has been sent to " + to + " with subject " + subject);
}
代码示例来源:origin: stackoverflow.com
Properties mailProps = new Properties();
mailProps.put("mail.smtp.from", from);
mailProps.put("mail.smtp.host", smtpHost);
mailProps.put("mail.smtp.port", port);
mailProps.put("mail.smtp.auth", true);
mailProps.put("mail.smtp.socketFactory.port", port);
message.setFrom(new InternetAddress(from));
String[] emails = { recipient };
InternetAddress dests[] = new InternetAddress[emails.length];
for (int i = 0; i < emails.length; i++) {
dests[i] = new InternetAddress(emails[i].trim().toLowerCase());
message.setRecipients(Message.RecipientType.TO, dests);
message.setSubject(subject, "UTF-8");
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(body, "text/html;charset=utf-8");
mp.addBodyPart(mbp);
message.setContent(mp);
message.setSentDate(new java.util.Date());
代码示例来源:origin: stackoverflow.com
String from = "user name";
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", "asdfgh");
props.put("mail.smtp.port", "587"); // 587 is the port number of yahoo mail
props.put("mail.smtp.auth", "true");
message.setFrom(new InternetAddress(from));
while (to_address[i] != null) {
message.addRecipient(Message.RecipientType.TO, to_address[i]);
i++;
message.setSubject("sending in a group");
message.setText("Welcome to JavaMail");
Transport transport = session.getTransport("smtp");
transport.connect("smtp.mail.yahoo.co.in", "user name", "asdfgh");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
代码示例来源:origin: gocd/gocd
public MimeMessage createMessage(String from, String to, String subject, String body)
throws MessagingException {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(TO, to);
msg.setSubject(subject);
msg.setContent(msg, "text/plain");
msg.setSentDate(new Date());
msg.setText(body);
msg.setSender(new InternetAddress(from));
msg.setReplyTo(new InternetAddress[]{new InternetAddress(from)});
return msg;
}
代码示例来源:origin: blynkkk/blynk-server
private void send(String to, String subj, String body, String contentType) throws Exception {
MimeMessage message = new MimeMessage(session);
message.setFrom(from);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subj, "UTF-8");
message.setContent(body, contentType);
Transport.send(message);
log.trace("Mail to {} was sent. Subj : {}, body : {}", to, subj, body);
}
代码示例来源:origin: blynkkk/blynk-server
private void send(String to, String subj, String body, String contentType) throws Exception {
MimeMessage message = new MimeMessage(session);
message.setFrom(from);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subj, "UTF-8");
message.setContent(body, contentType);
try (Transport transport = session.getTransport()) {
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
}
log.debug("Mail sent to {}. Subj: {}", to, subj);
log.trace("Mail body: {}", body);
}
代码示例来源:origin: JpressProjects/jpress
private Message createMessage() {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.host", host);
props.setProperty("mail.smtp.port", "25");
if (useSSL) {
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", "465");
}
// error:javax.mail.MessagingException: 501 Syntax: HELO hostname
props.setProperty("mail.smtp.localhost", "127.0.0.1");
Session session = Session.getInstance(props, this);
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(MimeUtility.encodeText(name) + "<" + name + ">"));
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
return message;
}
代码示例来源:origin: stackoverflow.com
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}catch(Exception e){
代码示例来源:origin: pentaho/pentaho-kettle
Properties props = new Properties();
props.put( "mail.smtp.host", ArgList[0] );
Session session = Session.getDefaultInstance( props, null );
session.setDebug( debug );
Message msg = new MimeMessage( session );
InternetAddress addressFrom = new InternetAddress( (String) ArgList[1] );
msg.setFrom( addressFrom );
addressTo[i] = new InternetAddress( strArrRecipients[i] );
Transport.send( msg );
} catch ( Exception e ) {
throw new RuntimeException( "sendMail: " + e.toString() );
代码示例来源:origin: stackoverflow.com
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
Transport transport = session.getTransport();
InternetAddress addressFrom = new InternetAddress(from);
message.setSender(addressFrom);
message.setSubject(subject);
message.setContent(msg, "text/plain");
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
transport.connect();
Transport.send(message);
transport.close();
代码示例来源:origin: pentaho/pentaho-kettle
Properties props = new Properties();
if ( Utils.isEmpty( server ) ) {
logError( BaseMessages.getString( PKG, "JobMail.Error.HostNotSpecified" ) );
if ( secureConnectionType.equals( "TLS" ) ) {
props.put( "mail.smtp.starttls.enable", "true" );
} else {
props.put( "mail.smtps.quitwait", "false" );
Session session = Session.getInstance( props );
session.setDebug( log.isDebug() );
Message msg = new MimeMessage( session );
sender_address = sender_name + '<' + sender_address + '>';
MimeMultipart parts = new MimeMultipart();
MimeBodyPart part1 = new MimeBodyPart(); // put the text in the
parts.addBodyPart( part1 );
transport = session.getTransport( protocol );
String authPass = getPassword( authenticationPassword );
transport.connect();
代码示例来源:origin: javaee-samples/javaee7-samples
out.println("<h1>Sending email using JavaMail API</h1>");
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.transport.protocol", "smtp");
props.put("mail.debug", "true");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
+ "\"...<br>");
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(creds.getFrom()));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(creds.getTo()));
message.setSubject("Sending message using Programmatic JavaMail " + Calendar.getInstance().getTime());
message.setText("Java EE 7 is cool!");
Transport.send(message, message.getAllRecipients());
代码示例来源:origin: shopizer-ecommerce/shopizer
impl.setPassword(emailConfig.getPassword());
Properties prop = new Properties();
prop.put("mail.smtp.auth", emailConfig.isSmtpAuth());
prop.put("mail.smtp.starttls.enable", emailConfig.isStarttls());
impl.setJavaMailProperties(prop);
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
InternetAddress inetAddress = new InternetAddress();
inetAddress.setPersonal(eml);
inetAddress.setAddress(from);
mimeMessage.setFrom(inetAddress);
mimeMessage.setSubject(subject);
Multipart mp = new MimeMultipart("alternative");
BodyPart textPart = new MimeBodyPart();
freemarkerMailConfiguration.setClassForTemplateLoading(HtmlEmailSenderImpl.class, "/");
Template textTemplate = freemarkerMailConfiguration.getTemplate(new StringBuilder(TEMPLATE_PATH).append("").append("/").append(tmpl).toString());
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(htmlContent);
mp.addBodyPart(htmlPart);
mimeMessage.setContent(mp);
代码示例来源:origin: apache/nifi
@Override
public void process(final InputStream rawIn) throws IOException {
try (final InputStream in = new BufferedInputStream(rawIn)) {
Properties props = new Properties();
props.put("mail.mime.address.strict", requireStrictAddresses);
Session mailSession = Session.getInstance(props);
MimeMessage originalMessage = new MimeMessage(mailSession, in);
MimeMessageParser parser = new MimeMessageParser(originalMessage).parse();
Address[] from = originalMessage.getFrom();
if (from == null) {
throw new MessagingException("Message failed RFC-2822 validation: No Sender");
Date sentDate = originalMessage.getSentDate();
if (sentDate == null ) {
Enumeration headers = originalMessage.getAllHeaders();
while (headers.hasMoreElements()) {
Header header = (Header) headers.nextElement();
putAddressListInAttributes(attributes, EMAIL_HEADER_TO, originalMessage.getRecipients(Message.RecipientType.TO));
putAddressListInAttributes(attributes, EMAIL_HEADER_CC, originalMessage.getRecipients(Message.RecipientType.CC));
putAddressListInAttributes(attributes, EMAIL_HEADER_BCC, originalMessage.getRecipients(Message.RecipientType.BCC));
putAddressListInAttributes(attributes, EMAIL_HEADER_FROM, originalMessage.getFrom()); // RFC-2822 specifies "From" as mailbox-list
if (StringUtils.isNotEmpty(originalMessage.getMessageID())) {
attributes.put(EMAIL_HEADER_MESSAGE_ID, originalMessage.getMessageID());
if (originalMessage.getReceivedDate() != null) {
attributes.put(EMAIL_HEADER_RECV_DATE, originalMessage.getReceivedDate().toString());
代码示例来源:origin: voldemort/voldemort
MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
MimeMultipart multiPartKeys = new MimeMultipart();
ByteArrayOutputStream keysOutputStream = new ByteArrayOutputStream();
MimeBodyPart keyBody = new MimeBodyPart();
try {
keyBody.addHeader(CONTENT_TYPE, "application/octet-stream");
keyBody.addHeader(CONTENT_TRANSFER_ENCODING, "binary");
keyBody.addHeader(CONTENT_LOCATION, contentLocationKey);
} catch(MessagingException me) {
MimeMultipart multiPartValues = new MimeMultipart();
for(Versioned<byte[]> versionedValue: entry.getValue()) {
Integer.toString(responseValue.length));
multiPartValues.addBodyPart(valueBody);
} catch(MessagingException me) {
logger.error("Exception while constructing value body part", me);
message.setContent(multiPartKeys);
message.saveChanges();
try {
multiPartKeys.writeTo(keysOutputStream);
代码示例来源:origin: bluejoe2008/openwebflow
public void sendMail(String receiver, String subject, String message) throws Exception
{
Properties properties = new Properties();
properties.setProperty("mail.transport.protocol", "smtp");//发送邮件协议
properties.setProperty("mail.smtp.auth", "true");//需要验证
Session session = Session.getInstance(properties);
session.setDebug(false);
//邮件信息
Message messgae = new MimeMessage(session);
messgae.setFrom(new InternetAddress(getMailFrom()));//设置发送人
messgae.setText(message);//设置邮件内容
messgae.setSubject(subject);//设置邮件主题
//发送邮件
Transport tran = session.getTransport();
tran.connect(getServerHost(), getServerPort(), getAuthUserName(), getAuthPassword());
tran.sendMessage(messgae, new Address[] { new InternetAddress(receiver) });//设置邮件接收人
tran.close();
Logger.getLogger(this.getClass()).debug(String.format("sent mail to <%s>: %s", receiver, subject));
}
}
代码示例来源:origin: apache/nifi
@Override
public void process(final InputStream rawIn) throws IOException {
try (final InputStream in = new BufferedInputStream(rawIn)) {
Properties props = new Properties();
props.put("mail.mime.address.strict", requireStrictAddresses);
Session mailSession = Session.getInstance(props);
MimeMessage originalMessage = new MimeMessage(mailSession, in);
MimeMessageParser parser = new MimeMessageParser(originalMessage).parse();
Address[] from = originalMessage.getFrom();
if (from == null) {
throw new MessagingException("Message failed RFC-2822 validation: No Sender");
Date sentDate = originalMessage.getSentDate();
if (sentDate == null) {
代码示例来源:origin: magefree/mage
properties.setProperty("mail.smtps.host", config.getMailSmtpHost());
properties.setProperty("mail.smtps.port", config.getMailSmtpPort());
properties.setProperty("mail.smtps.auth", "true");
properties.setProperty("mail.user", config.getMailUser());
properties.setProperty("mail.password", config.getMailPassword());
Session session = Session.getDefaultInstance(properties);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(config.getMailFromAddress()));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
message.setSubject(subject);
message.setText(text);
Transport trnsport = session.getTransport("smtps");
trnsport.connect(null, properties.getProperty("mail.password"));
message.saveChanges();
trnsport.sendMessage(message, message.getAllRecipients());
trnsport.close();
代码示例来源:origin: stackoverflow.com
String oauthToken, boolean debug) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.required", "true");
props.put("mail.smtp.sasl.enable", "false");
session = Session.getInstance(props);
session.setDebug(debug);
message.setSender(new InternetAddress(user));
message.setSubject(subject);
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
smtpTransport.sendMessage(message, message.getAllRecipients());
代码示例来源:origin: traccar/traccar
properties = getProperties(new PropertiesProvider(user));
Session session = Session.getInstance(properties);
MimeMessage message = new MimeMessage(session);
String from = properties.getProperty("mail.smtp.from");
if (from != null) {
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail()));
message.setSubject(subject);
message.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
message.setContent(multipart);
} else {
message.setContent(body, "text/html; charset=utf-8");
try (Transport transport = session.getTransport()) {
Context.getStatisticsManager().registerMail();
transport.connect(
properties.getProperty("mail.smtp.host"),
properties.getProperty("mail.smtp.username"),
properties.getProperty("mail.smtp.password"));
transport.sendMessage(message, message.getAllRecipients());
内容来源于网络,如有侵权,请联系作者删除!