How do I send emails outside my domain with Exchan

2019-03-20 22:48发布

I am able to send emails using the typical C# SMTP code across Exchange 2007 as long as both the from and to addresses are within my domain.

As soon as I try to send emails outside the domain I get:

Exception Details: System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.7.1 Unable to relay

How can I get exchange to accept my email and send it out to the internet?

4条回答
做个烂人
2楼-- · 2019-03-20 22:59

Authenticate to the exchange server.

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx


DefaultNetworkCredentials returns empty strings for username etc and causes this exception...

Here is an example, and here is another of sending authenticated message with System.Net.Mail.

查看更多
做自己的国王
3楼-- · 2019-03-20 23:13

Try #2... How about using a Exchange Pickup Folder instead? They are a faster way to send emails through Exchange because it just creates the email and drops it in the folder, no waiting to connect to the server or waiting for a reply. Plus I think it skips the whole relay issue.

Configure youur SmtpClient like so:

SmtpClient srv = new SmtpClient("exchsrv2007", 25) {
    DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
    PickupDirectoryLocation = "\\exchsrv2007\PickupFolder"
}
...
查看更多
我想做一个坏孩纸
4楼-- · 2019-03-20 23:16

You'll need to get your exchange admin to configure exchange to allow sending outside the domain. In my experience they've been reluctant to do so because of spam concerns.

If its' for limited use, you can set up server-side rules in exchange to forward messages meeting certain criteria outside the domain. You might be able to use VBA in these as well to pretty things up, but I am not sure.

查看更多
Rolldiameter
5楼-- · 2019-03-20 23:19

Have you set up the exchange server to allow relays from your web server? I had the same problem when switching to Exchange 2007.

查看更多
登录 后发表回答