System.Net.Mail.SmtpFailedRecipientException and Exchange 2007
Posted by Ryan Baxter Fri, 30 Jan 2009 17:45:00 GMT
I’d recently been struggling with a .NET application that sends email via SMTP through Exchange 2007 outside of my domain at work. That is, until I found a workaround that uses the Exchange 2007 Pickup folder. This eliminated my authentication hassles and resolved the dreaded Mailbox unavailable. The server response was: 5.7.1 Unable to relay error. I’ve posted the solution here, but I also suggest reading the original post.
SmtpClient smtpClient = new SmtpClient("EXCHANGESRV", 25) {
DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
PickupDirectoryLocation = "\\EXCHANGESRV\PickupFolder"
}
Keep in mind that you’ll either need sufficient write permission on the Pickup folder or be able to impersonate somebody that does. I happen to have written about identity impersonation a few months ago. You’re in luck.
Kudos to stackoverflow.com. I only wish I had enough rep to upvote the submitter. :(
- Posted in Code Snippets, Expect the Unexpected
- Meta 2 comments, permalink, rss, atom
And finally, kill Excel...
Posted by Ryan Baxter Thu, 15 Jan 2009 04:07:00 GMT
Everyone who’s worked with Excel on the Microsoft .NET framework has dealt with the problem of hanging Excel processes. The C# solution below is not very elegant, but it stops those pesky Excel processes from hanging around.
using System.Diagnostics;
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
private static extern
int GetWindowThreadProcessId(int hWnd, out int processId);
private static void CreateSpreadsheet()
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
try
{
// Create Excel spreadsheet.
}
catch (Exception ex)
{
// Do something with the exception.
}
finally
{
KillExcel(excel.hWnd);
}
}
private static void KillExcel(int hWnd)
{
int processId;
int threadProcessId = GetWindowThreadProcessId(hWnd, out processId);
Process.GetProcessById(processId).Kill();
}- Posted in Code Snippets
- Meta 2 comments, permalink, rss, atom
A Couple New Fractals
Posted by Ryan Baxter Mon, 12 Jan 2009 20:46:00 GMT
I’ve created types for both the Burning Ship and Newton fractals and added them to trunk of the Ruby Fractal Library repository. The Newton fractal was a little tricky since its formula requires the derivative of a polynomial p(z). A private “derivative” method yields the results of the expression, (f(x + dx) - f(x)) / dx when dx is provided as a parameter and p(z) is passed to the block.
private
def derivative(dx)
lambda { |x|
(yield(x + dx) - yield(x)) / dx
}
end Before making an official release, I’m going to do a few creative things with blocks and add one or two new coloring algorithms.
After the release, I’d like to begin experimenting with iterated functions and random fractals in hopes of making the library more well rounded. I’m also thinking about abstracting the rendering logic in an attempt to make RMagick less of a dependency. We’ll see how that goes.
The following code was used to render the fractals seen here:
burningShip = BurningShip.new(Complex(-1.75, -0.04))
burningShip.magnification = 32
burningShip.save_as('burning_ship.png')
newton = Newton.new
newton.a = -0.5
newton.pz = lambda { |z| z**3 - 1 }
newton.theme = Themes::Winter
newton.save_as('newton.png')Once that is all said and done I’ll be taking a break from fractals to work on another pet project. I’ll post more on that when I have something to show. Cheers.
- Posted in Code Snippets
- Meta no comments, permalink, rss, atom
Older posts: 1 2

