本文整理汇总了Java中com.sun.mail.imap.IMAPStore类的典型用法代码示例。如果您正苦于以下问题:Java IMAPStore类的具体用法?Java IMAPStore怎么用?Java IMAPStore使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IMAPStore类属于com.sun.mail.imap包,在下文中一共展示了IMAPStore类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: supportsIdle
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
protected boolean supportsIdle(Folder folder) throws MessagingException {
Store store = folder.getStore();
if (store instanceof IMAPStore) {
IMAPStore imapStore = (IMAPStore) store;
return imapStore.hasCapability("IDLE") && folder instanceof IMAPFolder;
} else {
return false;
}
}
开发者ID:camunda,项目名称:camunda-bpm-mail,代码行数:11,代码来源:MailNotificationService.java
示例2: deleteEmail
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
private void deleteEmail(final IMAPStore store, long uid) throws Exception {
IMAPFolder inbox = (IMAPFolder) store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
javax.mail.Message message = inbox.getMessageByUID(uid);
if (message != null) {
Folder trash = store.getFolder(getTrashFolderLocalisedName(inbox));
trash.open(Folder.READ_WRITE);
inbox.copyMessages(new javax.mail.Message[] { message }, trash);
trash.close(true);
}
inbox.close(true);
}
开发者ID:danielebufarini,项目名称:Reminders,代码行数:13,代码来源:DeleteEmailViaImap.java
示例3: connectToImap
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
* Connects and authenticates to an IMAP server with OAuth2. You must have
* called {@code initialize}.
*
* @param host Hostname of the imap server, for example {@code
* imap.googlemail.com}.
* @param port Port of the imap server, for example 993.
* @param userEmail Email address of the user to authenticate, for example
* {@code [email protected]}.
* @param oauthToken The user's OAuth token.
* @param debug Whether to enable debug logging on the IMAP connection.
*
* @return An authenticated IMAPStore that can be used for IMAP operations.
*/
public static IMAPStore connectToImap(String host, int port, String userEmail,
String oauthToken, boolean debug) throws Exception
{
Properties props = new Properties();
props.put("mail.imaps.sasl.enable", "true");
props.put("mail.imaps.sasl.mechanisms", "XOAUTH2");
props.put(OAuth2SaslClientFactory.OAUTH_TOKEN_PROP, oauthToken);
Session session = Session.getInstance(props);
session.setDebug(debug);
final URLName unusedUrlName = null;
IMAPSSLStore store = new IMAPSSLStore(session, unusedUrlName);
store.connect(host, port, userEmail, EMPTY_PASSWORD);
return store;
}
开发者ID:danielebufarini,项目名称:Reminders,代码行数:31,代码来源:OAuth2Authenticator.java
示例4: connectToImap
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
* Connects and authenticates to an IMAP server with OAuth2. You must have
* called {@code initialize}.
*
* @param host Hostname of the imap server, for example {@code
* imap.googlemail.com}.
* @param port Port of the imap server, for example 993.
* @param userEmail Email address of the user to authenticate, for example
* {@code [email protected]}.
* @param oauthToken The user's OAuth token.
* @param debug Whether to enable debug logging on the IMAP connection.
*
* @return An authenticated IMAPStore that can be used for IMAP operations.
*/
public static IMAPStore connectToImap(String host,
int port,
String userEmail,
String oauthToken,
boolean debug) throws Exception {
Properties props = new Properties();
props.put("mail.imaps.sasl.enable", "true");
props.put("mail.imaps.sasl.mechanisms", "XOAUTH2");
props.put(OAuth2SaslClientFactory.OAUTH_TOKEN_PROP, oauthToken);
Session session = Session.getInstance(props);
session.setDebug(debug);
final URLName unusedUrlName = null;
IMAPSSLStore store = new IMAPSSLStore(session, unusedUrlName);
final String emptyPassword = "";
store.connect(host, port, userEmail, emptyPassword);
return store;
}
开发者ID:google,项目名称:gmail-oauth2-tools,代码行数:33,代码来源:OAuth2Authenticator.java
示例5: main
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
* Authenticates to IMAP with parameters passed in on the commandline.
*/
public static void main(String args[]) throws Exception {
if (args.length != 2) {
System.err.println(
"Usage: OAuth2Authenticator <email> <oauthToken>");
return;
}
String email = args[0];
String oauthToken = args[1];
initialize();
IMAPStore imapStore = connectToImap("imap.gmail.com",
993,
email,
oauthToken,
true);
System.out.println("Successfully authenticated to IMAP.\n");
SMTPTransport smtpTransport = connectToSmtp("smtp.gmail.com",
587,
email,
oauthToken,
true);
System.out.println("Successfully authenticated to SMTP.");
}
开发者ID:google,项目名称:gmail-oauth2-tools,代码行数:28,代码来源:OAuth2Authenticator.java
示例6: testQUOTAUnsupported
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test(expected = MockTestException.class)
public void testQUOTAUnsupported() throws Exception {
final MockMailbox mb = MockMailbox.get("[email protected]");
final MailboxFolder mf = mb.getInbox();
final MimeMessage msg = new MimeMessage((Session) null);
msg.setSubject("Test");
msg.setFrom("[email protected]");
msg.setText("Some text here ...");
msg.setRecipient(RecipientType.TO, new InternetAddress("[email protected]"));
mf.add(msg); // 11
mf.add(msg); // 12
mf.add(msg); // 13
mb.getRoot().getOrAddSubFolder("test").create().add(msg);
final Store store = session.getStore("mock_imap");
store.connect("[email protected]", null);
final Folder defaultFolder = store.getDefaultFolder();
final Folder test = defaultFolder.getFolder("test");
final IMAPStore imapStore = (IMAPStore) store;
try {
imapStore.getQuota("");
} catch (final MessagingException e) {
throw new MockTestException(e);
}
}
开发者ID:salyh,项目名称:javamail-mock2,代码行数:31,代码来源:IMAPTestCase.java
示例7: testSendAndReceiveWithQuotedAddress
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testSendAndReceiveWithQuotedAddress() throws MessagingException, IOException {
// See https://en.wikipedia.org/wiki/Email_address#Local-part
String[] toList = {"\"John..Doe\"@localhost",
"abc.\"defghi\"[email protected]",
"\"abcdefghixyz\"@localhost",
"\"Foo Bar\"[email protected]"
};
for(String to: toList) {
greenMail.setUser(to, "pwd");
InternetAddress[] toAddress = InternetAddress.parse(to);
String from = to; // Same from and to address for testing correct escaping of both
final String subject = "testSendAndReceiveWithQuotedAddress";
final String content = "some body";
GreenMailUtil.sendTextEmailTest(to, from,
subject, content);
assertTrue(greenMail.waitForIncomingEmail(5000, 1));
final IMAPStore store = greenMail.getImap().createStore();
store.connect(to, "pwd");
try {
IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message[] msgs = folder.getMessages();
assertTrue(null != msgs && msgs.length == 1);
final Message msg = msgs[0];
assertEquals(to, ((InternetAddress)msg.getRecipients(Message.RecipientType.TO)[0]).getAddress());
assertEquals(from, ((InternetAddress)msg.getFrom()[0]).getAddress());
assertEquals(subject, msg.getSubject());
assertEquals(content, msg.getContent().toString());
assertArrayEquals(toAddress, msg.getRecipients(Message.RecipientType.TO));
} finally {
store.close();
}
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:39,代码来源:SenderRecipientTest.java
示例8: testQuotaCapability
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testQuotaCapability() throws MessagingException {
greenMail.setUser("[email protected]", "pwd");
greenMail.setQuotaSupported(false);
final IMAPStore store = greenMail.getImap().createStore();
try {
store.connect("[email protected]", "pwd");
Quota testQuota = new Quota("INBOX");
testQuota.setResourceLimit("STORAGE", 1024L * 42L);
testQuota.setResourceLimit("MESSAGES", 5L);
store.setQuota(testQuota);
fail("Excepted MessageException since quota capability is turned off");
} catch (MessagingException ex) {
assertEquals(ex.getMessage(), "QUOTA not supported");
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:20,代码来源:ImapServerTest.java
示例9: populateFromStore
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
* Static method to populate a {@link StoreIndex} with the messages in an {@link IMAPStore}
*
* @param index
* @param store
* @param threads
* @return
* @throws MessagingException
* @throws InterruptedException
*/
public static final StoreIndex populateFromStore(final StoreIndex index, IMAPStore store,
int threads) throws MessagingException, InterruptedException {
MessagingException messagingException = null;
//Crawl
synchronized (index.getFolders()) {
final ExecutorService service = Executors.newFixedThreadPool(threads);
try {
crawlFolders(store, index, store.getDefaultFolder(), service);
} catch (MessagingException ex) {
messagingException = ex;
}
service.shutdown();
service.awaitTermination(1, TimeUnit.HOURS);
if (index.hasCrawlException()) {
messagingException = index.getCrawlExceptions().get(0);
}
}
if (messagingException != null) {
throw messagingException;
}
return index;
}
开发者ID:manusa,项目名称:mnIMAPSync,代码行数:33,代码来源:StoreIndex.java
示例10: hasSortCapability
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
* Check whether the email store has the sort capability or not.
*
* @param store Email store
* @return true if the store is an IMAP store and it has the store capability
* @throws MessagingException In case capability check fails
*/
private static boolean hasSortCapability(Store store) throws MessagingException {
if (store instanceof IMAPStore) {
IMAPStore imapStore = (IMAPStore) store;
if (imapStore.hasCapability("SORT*")) {
return true;
}
}
return false;
}
开发者ID:HydAu,项目名称:Camel,代码行数:17,代码来源:MailConsumer.java
示例11: getInbox
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
private IMAPFolder getInbox(IMAPStore store) throws MessagingException {
IMAPFolder inbox = (IMAPFolder) store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
return inbox;
}
开发者ID:danielebufarini,项目名称:Reminders,代码行数:6,代码来源:GMailImapReader.java
示例12: connect
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
private boolean connect(String protocol, String host, String port, String userName, String password) {
Properties properties = getServerProperties(protocol, host, port);
Session session = Session.getDefaultInstance(properties);
try {
store = (IMAPStore)session.getStore(protocol);
store.connect(userName, password);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
开发者ID:mathieulegoc,项目名称:SmartTokens,代码行数:13,代码来源:GmailReader.java
示例13: connect
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
public boolean connect(String protocol, String host, String port, String userName, String password) {
Properties properties = getServerProperties(protocol, host, port);
Session session = Session.getDefaultInstance(properties);
try {
store = (IMAPStore)session.getStore(protocol);
store.connect(userName, password);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
开发者ID:mathieulegoc,项目名称:SmartTokens,代码行数:14,代码来源:MailBean.java
示例14: testSendAndReceive
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testSendAndReceive() throws UnsupportedEncodingException, MessagingException, UserException {
Session smtpSession = greenMail.getSmtp().createSession();
Message msg = new MimeMessage(smtpSession);
msg.setFrom(new InternetAddress("[email protected]"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("[email protected]"));
msg.setSubject("Email sent to GreenMail via plain JavaMail");
msg.setText("Fetch me via IMAP");
Transport.send(msg);
// Create user, as connect verifies pwd
greenMail.setUser("[email protected]", "[email protected]", "secret-pwd");
// Alternative 1: Create session and store or ...
Session imapSession = greenMail.getImap().createSession();
Store store = imapSession.getStore("imap");
store.connect("[email protected]", "secret-pwd");
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message msgReceived = inbox.getMessage(1);
assertEquals(msg.getSubject(), msgReceived.getSubject());
// Alternative 2: ... let GreenMail create and configure a store:
IMAPStore imapStore = greenMail.getImap().createStore();
imapStore.connect("[email protected]", "secret-pwd");
inbox = imapStore.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
msgReceived = inbox.getMessage(1);
assertEquals(msg.getSubject(), msgReceived.getSubject());
// Alternative 3: ... directly fetch sent message using GreenMail API
assertEquals(1, greenMail.getReceivedMessagesForDomain("[email protected]").length);
msgReceived = greenMail.getReceivedMessagesForDomain("[email protected]")[0];
assertEquals(msg.getSubject(), msgReceived.getSubject());
store.close();
imapStore.close();
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:41,代码来源:ExampleJavaMailTest.java
示例15: testRenameINBOXFolder
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
/**
*
* https://tools.ietf.org/html/rfc3501#page-37 :
* <q>
* Renaming INBOX is permitted, and has special behavior. It moves
* all messages in INBOX to a new mailbox with the given name,
* leaving INBOX empty. If the server implementation supports
* inferior hierarchical names of INBOX, these are unaffected by a
* rename of INBOX.
* </q>
*
* @throws MessagingException
* @throws InterruptedException
*/
@Test
public void testRenameINBOXFolder() throws MessagingException, InterruptedException {
greenMail.setUser("[email protected]", "pwd");
GreenMailUtil.sendTextEmail("[email protected]", "[email protected]", "Test subject",
"Test message", greenMail.getSmtp().getServerSetup());
final IMAPStore store = greenMail.getImap().createStore();
store.connect("[email protected]", "pwd");
try {
// Create some folders
Folder inboxFolder = store.getFolder("INBOX");
assertTrue(inboxFolder.exists());
inboxFolder.open(Folder.READ_ONLY);
assertEquals(1, inboxFolder.getMessages().length);
Folder inboxRenamedFolder = store.getFolder("INBOX-renamed");
assertFalse(inboxRenamedFolder.exists());
inboxFolder.close(true);
inboxFolder.renameTo(inboxRenamedFolder);
assertTrue(inboxRenamedFolder.exists());
inboxRenamedFolder.open(Folder.READ_ONLY);
assertEquals(1, inboxRenamedFolder.getMessages().length);
inboxFolder = store.getFolder("INBOX");
assertTrue(inboxFolder.exists());
inboxFolder.open(Folder.READ_ONLY);
assertEquals(0, inboxFolder.getMessages().length);
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:48,代码来源:ImapServerTest.java
示例16: testFolderRequiringEscaping
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testFolderRequiringEscaping() throws MessagingException {
greenMail.setUser("[email protected]", "pwd");
GreenMailUtil.sendTextEmail("[email protected]", "[email protected]", "test subject", "", greenMail.getSmtp().getServerSetup());
final IMAPStore store = greenMail.getImap().createStore();
store.connect("[email protected]", "pwd");
try {
// Create some folders
Folder inboxFolder = store.getFolder("INBOX");
inboxFolder.open(Folder.READ_ONLY);
final Folder folderRequiringEscaping = inboxFolder.getFolder("requires escaping Ä");
assertTrue(folderRequiringEscaping.create(Folder.HOLDS_FOLDERS | Folder.HOLDS_MESSAGES));
folderRequiringEscaping.open(Folder.READ_WRITE);
assertEquals(0, folderRequiringEscaping.getMessageCount());
assertEquals(1, inboxFolder.getMessageCount());
inboxFolder.copyMessages(inboxFolder.getMessages(), folderRequiringEscaping);
folderRequiringEscaping.expunge(); // invalidates folder cache
assertEquals(1, folderRequiringEscaping.getMessageCount());
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:29,代码来源:ImapServerTest.java
示例17: testUIDExpunge
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testUIDExpunge() throws MessagingException {
greenMail.setUser("[email protected]", "pwd");
// Create some test emails
int numberOfEmails = 10;
long[] uids = new long[numberOfEmails];
for (int i = 0; i < numberOfEmails; i++) {
GreenMailUtil.sendTextEmail("[email protected]", "[email protected]", "Test UID expunge #" + i,
"Test message", greenMail.getSmtp().getServerSetup());
}
final IMAPStore store = greenMail.getImap().createStore();
store.connect("[email protected]", "pwd");
try {
IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] messages = folder.getMessages();
assertEquals(numberOfEmails, messages.length);
// Mark even as deleted ...
Message[] msgsForDeletion = new Message[uids.length / 2];
for (int i = 0; i < messages.length; i++) {
assertFalse(messages[i].getFlags().contains(Flags.Flag.DELETED));
uids[i] = folder.getUID(messages[i]);
if (i % 2 == 0) { // Deleted
messages[i].setFlag(Flags.Flag.DELETED, true);
msgsForDeletion[i / 2] = messages[i];
}
}
// ... and expunge (with UID)
folder.expunge(msgsForDeletion);
// Check
for (int i = 0; i < uids.length; i++) {
final Message message = folder.getMessageByUID(uids[i]);
if (i % 2 == 0) { // Deleted
assertNull(message);
} else {
assertTrue("" + i, !message.isExpunged());
assertTrue("" + i, !message.getFlags().contains(Flags.Flag.DELETED));
}
}
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:50,代码来源:ImapServerTest.java
示例18: testAppend
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testAppend() throws MessagingException {
greenMail.setUser("[email protected]", "pwd");
GreenMailUtil.sendTextEmail("[email protected]", "[email protected]", "Test Append",
"Test message", greenMail.getSmtp().getServerSetup());
final IMAPStore store = greenMail.getImap().createStore();
store.connect("[email protected]", "pwd");
try {
IMAPFolder inboxFolder = (IMAPFolder) store.getFolder("INBOX");
inboxFolder.open(Folder.READ_WRITE);
Message[] messages = inboxFolder.getMessages();
assertEquals(1, messages.length);
Message message = messages[0];
Message[] toBeAppended = new Message[]{
new MimeMessage((MimeMessage) message) // Copy
};
toBeAppended[0].setSubject("testAppend#1");
inboxFolder.appendMessages(toBeAppended);
messages = inboxFolder.getMessages();
assertEquals(2, messages.length);
// UIDPLUS
toBeAppended[0] = new MimeMessage((MimeMessage) message);
toBeAppended[0].setSubject("testAppend#2");
final AppendUID[] appendUIDs = inboxFolder.appendUIDMessages(toBeAppended); // Copy again
long uid = appendUIDs[0].uid;
Message newMsg = inboxFolder.getMessageByUID(uid);
assertEquals(toBeAppended[0].getSubject(), newMsg.getSubject());
assertTrue(appendUIDs[0].uidvalidity == inboxFolder.getUIDValidity());
messages = inboxFolder.getMessages();
assertEquals(3, messages.length);
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:42,代码来源:ImapServerTest.java
示例19: testExpunge
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
@Test
public void testExpunge() throws MessagingException {
greenMail.setUser("[email protected]", "pwd");
for (int i = 0; i < 6; i++) {
GreenMailUtil.sendTextEmail("[email protected]", "[email protected]", "Test subject #" + i,
"Test message", ServerSetupTest.SMTP);
}
final IMAPStore store = greenMail.getImap().createStore();
store.connect("[email protected]", "pwd");
try {
Folder inboxFolder = store.getFolder("INBOX");
inboxFolder.open(Folder.READ_WRITE);
Message[] messages = inboxFolder.getMessages();
assertEquals(6, messages.length);
inboxFolder.setFlags(new int[]{2, 3}, new Flags(DELETED), true); // 1 and 2, offset is not zero-based
assertEquals(false, inboxFolder.getMessage(1).isSet(DELETED));
assertEquals(true, inboxFolder.getMessage(2).isSet(DELETED));
assertEquals(true, inboxFolder.getMessage(3).isSet(DELETED));
assertEquals(false, inboxFolder.getMessage(4).isSet(DELETED));
assertEquals(false, inboxFolder.getMessage(5).isSet(DELETED));
assertEquals(false, inboxFolder.getMessage(6).isSet(DELETED));
assertEquals(2, inboxFolder.getDeletedMessageCount());
Message[] expunged = inboxFolder.expunge();
assertEquals(2, expunged.length);
messages = inboxFolder.getMessages();
assertEquals(4, messages.length);
assertEquals("Test subject #0", messages[0].getSubject());
assertEquals("Test subject #3", messages[1].getSubject());
assertEquals("Test subject #4", messages[2].getSubject());
assertEquals("Test subject #5", messages[3].getSubject());
} finally {
store.close();
}
}
开发者ID:greenmail-mail-test,项目名称:greenmail,代码行数:39,代码来源:ImapServerTest.java
示例20: crawlFolders
import com.sun.mail.imap.IMAPStore; //导入依赖的package包/类
private static StoreIndex crawlFolders(IMAPStore store, StoreIndex storeIndex, Folder folder,
ExecutorService service) throws MessagingException {
if (folder != null) {
final String folderName = folder.getFullName();
storeIndex.getFolders().add(folderName);
if ((folder.getType() & Folder.HOLDS_MESSAGES) == Folder.HOLDS_MESSAGES) {
folder.open(Folder.READ_ONLY);
if (folder.getMode() != Folder.READ_ONLY) {
folder.expunge();
}
final int messageCount = folder.getMessageCount();
folder.close(false);
int pos = 1;
while (pos + MNIMAPSync.BATCH_SIZE <= messageCount) {
service.execute(new FolderCrawler(store, folderName, pos,
pos + MNIMAPSync.BATCH_SIZE, storeIndex));
pos = pos + MNIMAPSync.BATCH_SIZE;
}
service.execute(new FolderCrawler(store, folderName, pos, messageCount, storeIndex));
}
//Folder recursion. Get all children
if ((folder.getType() & Folder.HOLDS_FOLDERS) == Folder.HOLDS_FOLDERS) {
for (Folder child : folder.list()) {
crawlFolders(store, storeIndex, child, service);
}
}
}
return storeIndex;
}
开发者ID:manusa,项目名称:mnIMAPSync,代码行数:30,代码来源:StoreIndex.java
注:本文中的com.sun.mail.imap.IMAPStore类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论