Как реализовать Sender ID при отправке почты через C #? - PullRequest
6 голосов
/ 04 марта 2010

Я только что услышал, как Джоэл и Джефф говорили об идентификаторе отправителя в их подкасте № 83, и мне пришло в голову, что это именно то, что мне нужно для сайта, над которым я работаю.

Приблизительно 90% всех электронных писем, отправленных с сервера, являются отклоненными или похожими, вероятно, из-за того, что сервер не "проверен".

У меня есть запись SPF для сервера, но это тоже почти все.

Так что, поскольку StackOverflow решил эти проблемы, я думаю, что отправитель ID должен быть подходящим способом.

Насколько я могу судить из википедии, он требует, чтобы вы изменяли заголовок почты при отправке почты - как бы я поступил так с C #?

Кроме того, что мне нужно для настройки DNS и т. Д., Чтобы это работало?

Или я здесь на совершенно неверном пути?

Редактировать: я использую стандартный класс SmtpClient в C # для отправки писем, и я включаю как обычный текст, так и HTML-версию mailbody.

Ответы [ 2 ]

4 голосов
/ 05 марта 2010

Если вы отправляете почту от имени другого пользователя и хотите, чтобы оно было принято, вам может потребоваться сделать следующее:

В вашем объекте MailMessage:

mail.To = new MailAddress("email@tosomeone.com", "To Someone");
mail.From = new MailAddress("sendinguser@fromsomeone.com", "Sending User");
mail.Sender = new MailAddress("serveraddress@your-domain-with-spf.com", "Your Server");
mail.ReplyTo = new MailAddress("sendinguser@fromsomeone.com", "Sending User");

Это сгенерирует соответствующие заголовки, необходимые для работы проверки SPF (при условии, что на сервере установлены значения по умолчанию, они могут выбрать, какую часть проверять). Это заставит письмо выглядеть (в перспективе)

От: Ваш сервер от имени отправляющего пользователя
Кому: Кому-то

Большинство протоколов SPF проверяют заголовок Sender:, чтобы определить, позволяет ли отправляющий домен разрешать или запрещать его, так что это должно происходить из вашего домена независимо от того, с кого вы отправляете его «с».

Кроме того, вам может потребоваться перепроверить, что у вас ваши SPF-записи настроены правильно и что ваш IP-адрес (а) отсутствует в черном списке , например, spamhaus. Проверка фактического текста возврата звонка обычно говорит вам, почему он блокируется с ошибкой 5.something.

2 голосов
/ 05 марта 2010

Я не понимаю, почему нужно вносить какие-либо изменения заголовка для идентификатора отправителя / SPF. С вашей записью на месте, вам просто нужно убедиться, что ваши исходящие сообщения отправлены из: домена, который имеет соответствующий опубликованный отправляющий (публичный) IP-адрес в вашей записи SPF в DNS.

Тем не менее, я думаю, вы могли бы изучить MailMessage.Headers, чтобы увидеть, какие заголовки отправляются (или отправлять сообщения себе), чтобы определить, основываясь на типе вашей записи SPF, как получающие почтовые серверы будут вычислять домен, чтобы соответствовать Ваша запись SPF.

...