Я наткнулся на этот вопрос, пытаясь настроить hMailServer для работы с отправкой по электронной почте с C#. Я попытался следующие:
- C# SmtpClient - не работает с неявным SSL - посмотреть question и ответы
- AegisImplicitMail из here - не мог заставить его работать с UTF-8 строк (у меня есть диакритические в моей строки)
- MailKit от here - очень мощные и зрелые, никаких проблем не использовать его
I предназначен для следующих действий:
- приемлемая безопасность
- возможность отправлять электронные письма основным поставщикам электронной почты (например,Google, Yahoo) и достичь Входящие
- возможность получать электронную почту от основных поставщиков услуг электронной почты
C# код
public void MailKitSend(string senderEmail, string senderName, string subject, string bodyText, string receivers, string receiversCc)
{
// no receivers, no e-mail is sent
if (string.IsNullOrEmpty(receivers))
return;
var msg = new MimeMessage();
msg.From.Add(new MailboxAddress(Encoding.UTF8, senderName, senderEmail));
msg.Subject = subject;
var bb = new BodyBuilder {HtmlBody = bodyText};
msg.Body = bb.ToMessageBody();
IList<string> receiversEmails = receivers.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (string receiver in receiversEmails)
msg.To.Add(new MailboxAddress(Encoding.UTF8, "", receiver));
if (!string.IsNullOrEmpty(receiversCc))
{
IList<string> receiversEmailsCc = receiversCc.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (string receiverCc in receiversEmailsCc)
msg.Cc.Add(new MailboxAddress(Encoding.UTF8, "", receiverCc));
}
try
{
var sc = new MailKit.Net.Smtp.SmtpClient();
if (!string.IsNullOrWhiteSpace(SmtpUser) && !string.IsNullOrWhiteSpace(SmtpPassword))
{
sc.Connect(SmtpServer, 465);
sc.Authenticate(SmtpUser, SmtpPassword);
}
sc.Send(msg);
sc.Disconnect(true);
}
catch (Exception exc)
{
string err = $"Error sending e-mail from {senderEmail} ({senderName}) to {receivers}: {exc}";
throw new ApplicationException(err);
}
}
конфигурации hMailServer
1) Открытые порты - 25, 143, 465, 995 открыты, чтобы вы могли отправлять и получать электронную почту
2) Конфигурация TCP/IP портов
SMTP/0.0.0.0/port 25/no security (allow receiving start process)
SMTP/0.0.0.0/port 465/SSL/TLS security (must define a SSL certificate)
POP3/0.0.0.0/port 995/SSL/TLS security (use the same SSL certificate)
3) предварительно C# тестирование
Run Diagnostics из hMailServer Administrator
использовать клиент электронной почты, который позволяет вручную конфигурировать различных параметров, таких как порты для каждого протокола, безопасность. Я использовал Thunderbird. Включать отправку электронных писем внешним поставщикам и получать от них электронные письма (я пытался с Gmail).
Я не внес изменения в диапазоны IP и оставил неявные (Мой компьютер и Интернет).
Может играть с вариантами hmailserver в? Я использую hmailserver с лет без ssl из моих программ C#. –
@UweKeim хорошо, какие опции? Я не хочу, чтобы SSL я просто хотел отправить основную почту на другую учетную запись. – 2013-02-11 00:51:53