Tôi có một máy chủ SMTP chỉ chấp nhận người gửi Từ được xác định trước.
Tuy nhiên, tôi có thể thêm tùy chỉnh từ tiêu đề trong cấu trúc DATA để đặt cấu hình khác từ địa chỉ (người gửi). Đây là có thể nếu tôi thử nghiệm sử dụng Telnet để soạn một tin nhắn email:Làm cách nào để thêm tiêu đề tùy chỉnh vào lớp System.Net.Mail SMTP?
>helo there
>mail from:[email protected]
>rcpt to:[email protected]
>data
From:[email protected]
To:[email protected]
Subject:Test
Test message
.
Khi email này đã đến người nhận, từ địa chỉ là [email protected], đó là mục tiêu.
Đây là vấn đề của tôi.
Làm cách nào tôi có thể bắt chước "từ tiêu đề" trong lớp System.Net.Mail SMTP? Đặt thuộc tính từ không thành công, vì điều đó sẽ vi phạm chính sách máy chủ SMTP. Something như thế này sẽ là tuyệt vời, nhưng nó không hoạt động:
var fromAddress = new MailAddress("[email protected]");
var toAddress = new MailAddress("[email protected]");
string subject = "Subject";
string body = "Body";
var smtp = new SmtpClient
{
Host = "my-smtp-server",
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
ReplyTo = new MailAddress("[email protected]"),
})
{
message.Headers.Add("From", "[email protected]"); // <---- This would be great, if it worked
smtp.Send(message);
}
Có ai có ý tưởng nào?
PS. Viết một lớp SMTP tùy chỉnh bản thân mình, bằng cách sử dụng các socket TCP, nó hoạt động, nhưng điều này có thể được thực hiện trong các lớp .NET chuẩn không?
Đó không thể nào làm việc "thông báo" là ra khỏi phạm vi khi smtp.Send được gọi. cú pháp hoàn toàn sai và câu trả lời không minh họa giải pháp – GregJF
@GregJF, chào mừng bạn đến với Stackoverflow. Nếu bạn nghĩ rằng có một cách để cải thiện câu trả lời, bạn có thể đề xuất chỉnh sửa cho câu trả lời đó. –
Magnus, cảm ơn vì đã chào đón tôi đến với Stackoverflow: Tôi đã là thành viên được hơn 6 năm. Tôi đã đề xuất một cách để cải thiện câu trả lời của bạn: sửa cú pháp của bạn !! Câu hỏi đặt ra là về Tiêu đề, nhưng bạn không đề cập đến chúng trong câu trả lời của bạn. Về cú pháp, hãy thử sử dụng một miếng đệm đầu để kiểm tra mã của bạn trước khi đăng. ví dụ. Linqpad – GregJF