标签: exchange-server

如何使用 Javamail 访问其他邮箱(IMAP、Exchange 2010)

我想通过 Javamail API (1.4.5) 使用带有普通登录的 IMAP(s) 访问共享邮箱(非文件夹)。邮件服务器是 Exchange Server 2010。

用户:user1 (user1@domain.com) 密码:xxxx

共享邮箱:shared_MB@domain.com

我设法访问了 user1 - 邮箱:

    Session session = Session.getInstance(properties, new ExchangeAuthenticator(username, password));
        session.setDebug(true);

        Store store = session.getStore("imaps");

        store.connect(imapHost, username, password);
Run Code Online (Sandbox Code Playgroud)

特性:

mail.imaps.socketFactory.port = 993

mail.imaps.starttls.enable = true

mail.imaps.socketFactory.class = javax.net.ssl.SSLSocketFactory

mail.imaps.socketFactory.fallback = false

用户名 = user1@domain.com

密码 = xxxx

--> 这很好用!但是现在我想通过更改登录字符串来访问附加邮箱:

用户名=user1@domain.com/shared_MB

--> 不幸的是,我收到一条“NO AUTHENTICATE”消息:

   DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO AUTHENTICATE failed.
Run Code Online (Sandbox Code Playgroud)

我能够使用 Thunderbird 访问,所以我认为我的代码中缺少一些东西......

exchange-server jakarta-mail

3
推荐指数
1
解决办法
8565
查看次数

Exchange 远程 Powershell 出现零星的“损坏”状态

我正在尝试通过 Windows Powershell 从远程 Exchange 服务器接收所有 TransportAgent 的状态。

我偶尔会收到一个错误,即The session state is Broken. 一旦它坏了,我需要创建一个新的会话

下面是我正在使用的命令列表(按正确顺序)

# Build the PSSession for Exchange
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<SERVER>/PowerShell/ -Authentication Default
# Invoke the command 'Get-TransportAgent' on the remote PSSession
Invoke-Command $Session {Get-TransportAgent}
# Result when there is NO ERROR
Identity                                           Enabled         Priority        PSComputerName
--------                                           -------         --------        --------------
Transport Rule Agent                               True            1               <SERVER>
Malware Agent                                      True            2               <SERVER>
Text Messaging Routing Agent                       True            3               <SERVER>
Text Messaging Delivery …
Run Code Online (Sandbox Code Playgroud)

powershell exchange-server powershell-remoting

3
推荐指数
1
解决办法
1万
查看次数

com.sun.mail.util.MailConnectException:无法连接到主机,端口:localhost,25;超时-1;

package jmail;

import java.util.Date; import java.util.Properties; 
import javax.mail.Authenticator; import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage;

public class HtmlJavaSend {

public void sendHtmlEmail(String host, String port,
        final String userName, final String password, String toAddress,
        String subject, String message) throws AddressException,
        MessagingException {

    // sets SMTP server properties
    Properties properties = new Properties();
    properties.put("mail.man.com", host);
    properties.put("mail.25", port);
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.starttls.enable", "true");
    properties.put("mail.smtp.ssl.trust","mail.man.com");

    // creates a new session with an authenticator
    Authenticator auth = …
Run Code Online (Sandbox Code Playgroud)

java ssl exchange-server jakarta-mail starttls

3
推荐指数
1
解决办法
6万
查看次数

EWS 托管 API 和 Exchange 2013 中的 Folder.WellKnownFolderName 为空

将 EWS 托管 API 与 Office 365 一起使用(ExchangeVersion.Exchange2013_SP1 配置文件)。当为父文件夹调用 Folder.FindFolders 时,对于所有返回的 Folder 对象(包括众所周知的文件夹,如收件箱),我将 Folder.WellKnownFolderName 值设为 null。.TotalCount 之类的其他值很好。

MSDN 中的 Folder.WellKnownFolderName 文档指出它应该适用于 Exchange2013 及更高版本,我相信 Office 365 符合此标准。

此外,如果我连接到 Exchange 2010 服务器并设置 ExchangeVersion.Exchange_2010 配置文件,.WellKnownFolderName 将引发异常而不是返回 null(这是预期的行为)。因此(以我的理解),根据版本,它应该为 Inbox 等知名文件夹抛出异常或返回非空值。

我错过了什么吗?

或者我应该使用其他方法来确定系统文件夹,如收件箱、已发送邮件等?

c# exchange-server office365 managed-ews

3
推荐指数
1
解决办法
1531
查看次数

调用命令的问题

在我的脚本中,我希望将 Exchange Online 通讯组成员添加到我的阵列中$members_id

Get-DistributionGroupMember我想在远程服务器上运行 cmdlet,所以它看起来像这样:

Invoke-Command -Session $Session -ScriptBlock {
    $members_id = Get-DistributionGroupMember -Identity "power_shell_test"
} -ArgumentList $members_id
Run Code Online (Sandbox Code Playgroud)

运行后我得到一个错误:

此运行空间不支持该语法。如果运行空间处于无语言模式,则可能会发生这种情况。

图像

当我删除$members_id =它时运行良好。

如果您知道为什么会这样,请告诉我。

powershell exchange-server

3
推荐指数
1
解决办法
1613
查看次数

从Java与Exchange 2003交谈

从Java应用程序与Exchange 2003服务器通信可能有哪些选择?我听过一些对Java提供.NET服务的项目的引用.我想我也听说过有关Exchange 2007暴露Web服务的一些内容,但我不确定它是否可以在2003年使用.

有没有人这样做过?有什么建议?

编辑:通过"与...交谈"我并不仅仅意味着获取消息,我可以通过IMAP来做...我的意思是访问更具特定于Exchange的内容,例如联系人.

.net java exchange-server

2
推荐指数
1
解决办法
1159
查看次数

Exchange管理控制台连接到错误的服务器

我是MS Exchange的新手,我显然在安装过程中出现了一些错误,现在当我尝试打开Exchange管理控制台并单击左侧的Microsoft Exchange内部部署树项时,出现以下错误:"[servername.domainname.com]连接到远程服务器失败,并显示以下错误消息:WinRM客户端无法在指定的时间内完成操作.检查计算机名称是否有效且可以访问...."

我知道servername是错误的,那么如何更改它并让Exchange管理控制台默认自动连接到正确的服务器?

console exchange-server

2
推荐指数
1
解决办法
3万
查看次数

如何用Python交换元音和辅音

我想创建一个函数,它将按以下方式解码一个单词:第一个元音与最后一个元音交换,第二个元素与倒数第二个交换等.我想用辅音做同样的事情.最后它将返回解码的单词.

这是我的元音代码的开头:

def decode(w):
    for i in range(len(w)):
        for j in range(len(w[::-1])):
            if (i[0] in 'aeiouy' and j[0] in 'aeiouy'):
                s[i],s[j]=s[j],s[i]
    return w
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何交换这封信.

例如:我给了一个词:'星期六'我的功能给了'dyratsua'回来

python exchange-server decode

2
推荐指数
1
解决办法
1183
查看次数

邮箱列表的Get-Mailboxpermission

我想获取指定邮箱列表的所有权限列表.

要获得只有一个的所有权限,我可以这样做:

Get-MailboxPermission -Identity "Mailbox01"
Run Code Online (Sandbox Code Playgroud)

如果我想一次获取多个邮箱的权限列表,该怎么办?

就像是:

Get-MailboxPermission -Identity "Mailbox01","Mailbox02","Mailbox03"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做 - 在一个列表中?

powershell exchange-server exchange-server-2010

2
推荐指数
1
解决办法
3万
查看次数

|之间的差异 和$

任何人都可以向我解释我所看到的差异,或者使用|一个命令将一个命令传递给另一个命令,或者用$一种不同的方式"管道"它(很抱歉不确定该用途$是否实际上考虑了管道).

所以...这有效:

Get-Mailbox -ResultSize Unlimited | 
    where { $_.RecipientTypeDetails.tostring() -eq "SharedMailbox" } | 
    Get-MailboxPermission
Run Code Online (Sandbox Code Playgroud)

哪个很棒,但是因为我想在上面的命令之后放置另一个命令,Get-MailboxPermission然后尝试使用它:

$Mailbox = Get-Mailbox -ResultSize Unlimited | 
           where { $_.RecipientTypeDetails.tostring() -eq "SharedMailbox" }

Get-MailboxStatistics -Identity $Mailbox |
    where { $_.IsInherited.tostring() -eq "False" }
Run Code Online (Sandbox Code Playgroud)

它导致我得到这个错误:

无法处理参数'Identity'上的参数转换.无法将类型为"System.Collections.ArrayList"的"System.Collections.ArrayList"值转换为"Microsoft.Exchange.Configuration.Tasks.GeneralMailboxOrMailUserIdParameter".

肯定使用|或者$是相同的,因为它将结果传递给下一个命令,或者我完全错了?

powershell exchange-server pipe

2
推荐指数
1
解决办法
414
查看次数