2010-03-04 27 views
5

Tôi vừa nghe thấy Joel & Jeff nói về ID người gửi trong số podcast của họ 83, và nó xảy ra với tôi đó chỉ là những gì tôi cần cho một trang web mà tôi đang làm việc.Cách triển khai ID người gửi khi gửi thư qua C#?

Khoảng 90% tất cả các e-mail được gửi từ máy chủ bị trả về hoặc tương tự, có thể do máy chủ không được "xác thực".

Tôi có bản ghi SPF tại chỗ cho máy chủ, nhưng điều đó cũng khá nhiều.

Do StackOverflow đã giải quyết những vấn đề này, tôi đoán ID người gửi phải là cách để đi.

Theo như tôi có thể nói từ wikipedia, nó đòi hỏi bạn phải sửa đổi tiêu đề thư khi gửi thư - làm thế nào tôi sẽ đi về việc này từ C#?

Ngoài ra tôi cần phải thiết lập DNS thông minh, v.v. để thực hiện công việc này?

Hoặc tôi đang theo dõi hoàn toàn sai ở đây?

Chỉnh sửa: Tôi đang sử dụng lớp SmtpClient tiêu chuẩn trong C# để gửi thư và tôi bao gồm cả bản rõ và phiên bản HTML của thư.

+0

Bạn đã thêm spf vào cấu hình DNS của tên miền? – curtisk

+0

Có phần đó theo thứ tự :-) – Steffen

Trả lời

4

Nếu bạn đang gửi thư thay mặt cho một người dùng khác và bạn muốn nó được chấp nhận bạn có thể cần phải làm như sau:

Trong đối tượng MailMessage của bạn:

mail.To = new MailAddress("[email protected]", "To Someone"); 
mail.From = new MailAddress("[email protected]", "Sending User"); 
mail.Sender = new MailAddress("[email protected]", "Your Server"); 
mail.ReplyTo = new MailAddress("[email protected]", "Sending User"); 

Điều này sẽ tạo ra tiêu đề thích hợp cần thiết để xác thực SPF hoạt động (giả sử máy chủ đã đặt nó thành mặc định, họ có thể chọn phần nào để xác thực). Điều này sẽ làm cho giao diện email tương tự (trong quan điểm)

Từ: Máy chủ của bạn thay mặt gửi tài
Để: Để người

Hầu hết các giao thức SPF sẽ xác nhận các Sender: tiêu đề để xác định xem gửi tên miền cho phép hoặc từ chối nó vì vậy điều này cần phải đến từ tên miền của bạn bất kể những người bạn đang gửi nó "từ".

Ngoài ra, bạn có thể muốn kiểm tra lại xem bạn có your SPF records set up right và địa chỉ IP của bạn không nằm trên số blacklist chẳng hạn như spamhaus. Kiểm tra văn bản trả về thực tế của cuộc gọi thường sẽ cho bạn biết lý do tại sao nó bị chặn với lỗi 5.something.

+0

Tôi chưa có phần Người gửi trong mã của mình, để có thể giúp được một chút. Ngoài ra, tôi sẽ kiểm tra liên kết của bạn để có bản ghi SPF và đảm bảo rằng tôi đã nhận được đúng. Cảm ơn :-) – Steffen

2

Tôi không hiểu tại sao bạn cần thực hiện bất kỳ thay đổi tiêu đề nào cho ID người gửi/SPF. Với hồ sơ của bạn tại chỗ, bạn chỉ cần đảm bảo thư gửi đi của bạn là Từ: một miền có IP được gửi công khai phù hợp trong bản ghi SPF của bạn trong DNS.

Tuy nhiên, tôi nghĩ bạn có thể kiểm tra MailMessage.Headers để xem tiêu đề nào được gửi (hoặc gửi thư cho chính mình) để xác định dựa trên loại bản ghi SPF của bạn cách nhận máy chủ thư sẽ tính toán tên miền vào bản ghi SPF của bạn.

Các vấn đề liên quan