2011-01-21 19 views

Trả lời

1

Hmm, hãy để tôi nhìn thấy, nó có thể là "txtEmail.Text" không phải là một địa chỉ email hợp lệ? Tôi chỉ đoán ở đây, nhưng bạn có thể muốn xóa các dấu ngoặc kép xung quanh để lấy giá trị thực tế trong kiểm soát của bạn ...

13
msg.To.Add(new MailAddress("txtEmail.Text")); 

là vấn đề. txtEmail.Text không phải là địa chỉ e-mail. Nếu đó là một tập tin văn bản đó là một danh sách các e-mail, bạn sẽ cần phải mở nó và đọc nó và vượt qua chúng từng cái một.

Nếu nó đề cập đến một hộp văn bản, hãy bỏ dấu ngoặc kép xung quanh nó. Như thế này:

msg.To.Add(new MailAddress(txtEmail.Text)); 
0

cả địa chỉ người gửi và người nhận cần phải là định dạng địa chỉ email hợp lệ. ví dụ. [email protected]

10

Đối với tôi, sự cố đã được sử dụng dấu chấm phẩy (;) để phân tách nhiều email. Khi tôi thay đổi nó thành dấu phẩy (,) nó hoạt động. Hy vọng điều này sẽ giúp ai đó.

+0

Đây là vấn đề đối với tôi, cảm ơn bạn. –

3

Vấn đề về mã trên có thể đã xảy ra do

msg.To.Add(new MailAddress("txtEmail.Text")); 

Bạn có thể được rõ ràng rằng đây "txtEmail.Text" xuất hiện như là một chuỗi nhưng không phải là địa chỉ gửi thư cho ai qua đường bưu điện phải được gửi . Vì vậy, mã nên được thay thế bằng

msg.To.Add(new MailAddress(txtEmail.Text)); 

và đôi khi các lỗi như "Chuỗi quy định không phải là theo hình thức cần thiết cho một địa chỉ e-mail" cũng có thể xảy ra do sử dụng không đúng cách string.As thậm chí tôi đối mặt với nó.

Về cơ bản tôi đã làm việc trong email gửi tác vụ bằng ASP.Net. Vấn đề chính đối với tôi là gửi thư cho nhiều người dùng. Thứ nhất, tôi lấy địa chỉ email từ cơ sở dữ liệu và sử dụng ";" để tách riêng nhiều địa chỉ email. Bởi vì trong khi gửi email cho nhiều người dùng, thông thường chúng tôi sử dụng dấu chấm phẩy, tức là ";"

Mọi thứ có vẻ ổn nhưng sau khi biên dịch, tôi nhận được lỗi "Chuỗi được chỉ định không có dạng yêu cầu cho địa chỉ email".

Sau khi phân tích một chút, tôi đã biết rằng thay vì sử dụng ";", chúng tôi nên sử dụng "," để tách nhiều địa chỉ email trong khi gửi thư. Đây là chuỗi được định dạng để tách email.

Đối với chi tiết tham quan: http://kopila.com.np

Cảm ơn bạn!

0

Tôi đã có một vấn đề mà tôi đã tạo ra được thông báo với người nhận và người gửi đã có trong nó, nhưng nó trả lại lỗi sau:

The specified string is not in the form required for an e-mail address

Mã có vấn đề đã được như sau:

MailMessage objMsg = new MailMessage(regEmail.Text.ToString(), "[email protected]"); 

tôi cố định vấn đề này bằng cách thay thế mã mà với điều này:

MailMessage objMsg = new MailMessage(); 
objMsg.From = new MailAddress(regEmail.Text.ToString()); 
objMsg.To.Add(new MailAddress("[email protected]")); 

Nó cũng rất hữu ích để sử dụng một biểu validator thường xuyên trong điều khiển người dùng của bạn để chắc chắn rằng địa chỉ là hợp lệ, bạn có thể sử dụng đoạn mã sau cho asp:

<asp:RegularExpressionValidator ID="regex1" ControlToValidate="regEmail" ErrorMessage="Please enter a valid email address" ValidationExpression="^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$" ValidationGroup="regGroup" runat="server" Display="None" SetFocusOnError="True"></asp:RegularExpressionValidator> 

Hoặc nếu bạn muốn để xác nhận email trong C# thì bạn có thể sử dụng điều này cũng như được tuyên bố bởi S Fadhel Ali:

public static bool IsValidEmail(String Email) 
{ 
    if(Email != null && Email != "") 
     return Regex.IsMatch(Email, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 
    else 
     return false; 
} 
0

Nó phải ở định dạng sau.

Dim myMail As New Net.Mail.MailMessage(New MailAddress(strFrom), New MailAddress(strTo)) 
Các vấn đề liên quan