Gửi email bằng .NET thông qua Gmail


876

Thay vì dựa vào máy chủ của tôi để gửi email, tôi đã nghĩ đến việc gửi các email bằng tài khoản Gmail của mình. Các email là các email được cá nhân hóa cho các ban nhạc tôi chơi trong chương trình của tôi.

Có khả năng làm việc đó không?


1
< systemnetmail.com > có lẽ là trang web hoàn chỉnh vô lý nhất dành riêng cho một không gian tên .NET duy nhất ... nhưng nó có MỌI THỨ bạn có thể muốn biết về việc gửi thư qua .NET, có thể là ASP.NET hoặc Desktop. < systemwebmail.com > là URL gốc trong bài đăng, nhưng không nên được sử dụng cho .NET 2.0 trở lên.
Adam Haile

13
Nếu bạn đang sử dụng ASP.Net Mvc, tôi khuyên bạn nên xem MvcMailer: github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
noocyte

Tôi có một ví dụ hay về cách thực hiện việc này trên trang web của tôi jarloo.com/gmail-in-c
Kelly

Làm thế nào để gửi tập tin bằng mã này?
Ranadheer Reddy

Câu trả lời:


1065

Hãy chắc chắn để sử dụng System.Net.Mail, không bị phản đối System.Web.Mail. Làm SSL với System.Web.Maillà một mớ hỗn độn của các phần mở rộng hacky.

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

49
Bạn vẫn có thể khiến người dùng không đăng nhập lỗi nếu Google đột nhiên quyết định bạn đã gửi quá nhiều trong số phút xx trước đây. Bạn phải luôn luôn thêm một trySend, nếu nó bị lỗi ngủ một lúc, và sau đó thử lại.
Jason Short

72
Lưu ý thú vị: Nếu bạn trao đổi 'UseDefaultCredentials = false,' và 'Credentials = ...' thì nó sẽ không xác thực.
Nathan Wheeler

13
Không có vấn đề với SPF khi sử dụng phương pháp này. Mỗi ứng dụng email có thể được cấu hình để làm chính xác điều này. Bạn chỉ có thể gặp sự cố nếu bạn sử dụng máy chủ của riêng mình (tức là một cái gì đó khác smtp.gmail.com) với something@gmail.comtư cách là người gửi. Btw: smtp.gmail.comtự động ghi đè địa chỉ người gửi nếu đó không phải là địa chỉ của bạn.
Meinersbur

24
Tôi đã có một thời gian khó khăn để làm việc này ngay cả khi thử các tinh chỉnh khác nhau. Theo đề xuất trên một bài đăng liên quan, tôi thấy rằng đó thực sự là phần mềm chống vi-rút của tôi đã ngăn các email được gửi thành công. Phần mềm chống vi-rút được đề cập là McAffee và "Bảo vệ truy cập" của nó có danh mục "Bảo vệ tiêu chuẩn chống vi-rút" có quy tắc "Ngăn chặn sâu gửi thư hàng loạt gửi email". Tinh chỉnh / vô hiệu hóa quy tắc đó có mã này làm việc cho tôi!
yourbuddypal

18
Tôi đã nhận được thông báo lỗi Yêu cầu xác thực 5.5.1 cho đến khi tôi nhận ra mình đang kiểm tra tài khoản (tài khoản cá nhân của tôi) có bật xác thực hai yếu tố. Khi tôi đã sử dụng một tài khoản không có tài khoản đó, nó hoạt động tốt. Tôi cũng có thể đã tạo một mật khẩu cho ứng dụng của mình mà tôi đã kiểm tra từ tài khoản cá nhân của mình, nhưng tôi không muốn làm điều đó.
Nick DeVore

153

Câu trả lời trên không hoạt động. Bạn phải đặt DeliveryMethod = SmtpDeliveryMethod.Networkhoặc nó sẽ quay lại với lỗi " máy khách không được xác thực ". Ngoài ra, đó luôn là một ý tưởng tốt để đặt thời gian chờ.

Mã sửa đổi:

using System.Net.Mail;
using System.Net;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@yahoo.com", "To Name");
const string fromPassword = "password";
const string subject = "test";
const string body = "Hey now!!";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
    Timeout = 20000
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

3
Hấp dẫn; nó hoạt động trên máy của tôi (TM). Nhưng vì điều này có vẻ hợp lý, tôi sẽ thêm nó vào câu trả lời của mình.
Domenic

3
Hmm tôi đoán là SmtpDeliveryMethod. Mạng là mặc định, nhưng có lẽ mặc định sẽ bị thay đổi khi chạy trong IIS --- đó có phải là những gì bạn đang làm không?
Domenic

3
Tôi đang sử dụng cùng một mã trong ứng dụng Console, đó là do lỗi "Không gửi được thư".
Karthikeyan P

5
Câu trả lời này không hoạt động. Xin vui lòng, hãy xem stackoverflow.com/questions/34851484/ từ

110

Để các câu trả lời khác hoạt động "từ máy chủ", trước tiên, Bật quyền truy cập cho các ứng dụng kém an toàn hơn trong tài khoản gmail.

Có vẻ như gần đây google đã thay đổi chính sách bảo mật. Câu trả lời được xếp hạng hàng đầu không còn hoạt động nữa, cho đến khi bạn thay đổi cài đặt tài khoản của mình như được mô tả tại đây: https://support.google.com/accountsfurt/6010255?hl=vi-GBnhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Kể từ tháng 3 năm 2016, google đã thay đổi vị trí cài đặt một lần nữa!


4
Điều này làm việc cho tôi. Và cũng liên quan. Không chắc chắn tôi muốn tắt bảo mật đó. Có thể cần suy nghĩ lại ...
Sully

4
Từ quan điểm bảo mật tốt hơn để bật Xác minh 2 bước, sau đó tạo và sử dụng mật khẩu ứng dụng - xem Cách gửi email trong .Net theo chính sách bảo mật mới?
Michael Freidgeim

2
@BCS Phần mềm, chương trình inmy, người dùng chèn bất kỳ email nào mà chương trình của tôi phải sử dụng để gửi tin nhắn. Vậy, làm thế nào tôi có thể khiến người dùng email có thể gửi email ngay cả khi xác thực 2 yếu tố được bật ??
Alaa '

Đây là cùng một cài đặt bạn cần thay đổi nếu bạn muốn sử dụng ứng dụng khách Microsoft Outlook (trên máy tính để bàn, điện thoại di động, v.v.) để gửi / nhận email thông qua Gmail của Gmail.
Brett Rigby

41

Điều này là để gửi email với tệp đính kèm .. Đơn giản và ngắn gọn ..

nguồn: http://coding-issues.blogspot.in/2012/11/seinating-email-with-attachments-from-c.html

using System.Net;
using System.Net.Mail;

public void email_send()
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("your mail@gmail.com");
    mail.To.Add("to_mail@gmail.com");
    mail.Subject = "Test Mail - 1";
    mail.Body = "mail with attachment";

    System.Net.Mail.Attachment attachment;
    attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
    mail.Attachments.Add(attachment);

    SmtpServer.Port = 587;
    SmtpServer.Credentials = new System.Net.NetworkCredential("your mail@gmail.com", "your password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);

}

21

Google có thể chặn các lần đăng nhập từ một số ứng dụng hoặc thiết bị không sử dụng các tiêu chuẩn bảo mật hiện đại. Vì các ứng dụng và thiết bị này dễ xâm nhập hơn, nên việc chặn chúng sẽ giúp tài khoản của bạn an toàn hơn.

Một số ví dụ về các ứng dụng không hỗ trợ các tiêu chuẩn bảo mật mới nhất bao gồm:

  • Ứng dụng Mail trên iPhone hoặc iPad với iOS 6 trở xuống
  • Ứng dụng Mail trên điện thoại Windows của bạn trước phiên bản 8.1
  • Một số ứng dụng thư trên máy tính để bàn như Microsoft Outlook và Mozilla Thunderbird

Do đó, bạn phải kích hoạt Đăng nhập ít an toàn hơn trong tài khoản google của mình.

Sau khi đăng nhập vào tài khoản google, hãy truy cập:

https://myaccount.google.com/lesssecur Ứng dụng lại
hoặc
https://www.google.com.vn/sinstall/security/lesssecur Ứng dụng lại

Trong C #, bạn có thể sử dụng mã sau:

using (MailMessage mail = new MailMessage())
{
    mail.From = new MailAddress("email@gmail.com");
    mail.To.Add("somebody@domain.com");
    mail.Subject = "Hello World";
    mail.Body = "<h1>Hello</h1>";
    mail.IsBodyHtml = true;
    mail.Attachments.Add(new Attachment("C:\\file.zip"));

    using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
    {
        smtp.Credentials = new NetworkCredential("email@gmail.com", "password");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }
}


16

Đây là phiên bản của tôi: " Gửi email bằng C # bằng Gmail ".

using System;
using System.Net;
using System.Net.Mail;

namespace SendMailViaGmail
{
   class Program
   {
   static void Main(string[] args)
   {

      //Specify senders gmail address
      string SendersAddress = "Sendersaddress@gmail.com";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "ReceiversAddress@yahoo.com";
      //Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
      const string SendersPassword = "Password";
      //Write the subject of ur mail
      const string subject = "Testing";
      //Write the contents of your mail
      const string body = "Hi This Is my Mail From Gmail";

      try
      {
        //we will use Smtp client which allows us to send email using SMTP Protocol
        //i have specified the properties of SmtpClient smtp within{}
        //gmails smtp server name is smtp.gmail.com and port number is 587
        SmtpClient smtp = new SmtpClient
        {
           Host = "smtp.gmail.com",
           Port = 587,
           EnableSsl = true,
           DeliveryMethod = SmtpDeliveryMethod.Network,
           Credentials    = new NetworkCredential(SendersAddress, SendersPassword),
           Timeout = 3000
        };

        //MailMessage represents a mail message
        //it is 4 parameters(From,TO,subject,body)

        MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
        /*WE use smtp sever we specified above to send the message(MailMessage message)*/

        smtp.Send(message);
        Console.WriteLine("Message Sent Successfully");
        Console.ReadKey();
     }

     catch (Exception ex)
     {
        Console.WriteLine(ex.Message);
        Console.ReadKey();
     }
    }
   }
 }

8
Mặc dù bài viết của bạn trong thực tế có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Stack Overflow chỉ hữu ích như các câu hỏi và câu trả lời của nó, và nếu máy chủ blog của bạn bị hỏng hoặc URL của bạn bị di chuyển, câu trả lời này sẽ trở nên vô dụng. Cảm ơn!
đăng

14

Tôi hy vọng mã này sẽ hoạt động tốt. Bạn có thể thử.

// Include this.                
using System.Net.Mail;

string fromAddress = "xyz@gmail.com";
string mailPassword = "*****";       // Mail id password from where mail will be sent.
string messageBody = "Write the body of the message here.";


// Create smtp connection.
SmtpClient client = new SmtpClient();
client.Port = 587;//outgoing port for the mail.
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(fromAddress, mailPassword);


// Fill the mail form.
var send_mail = new MailMessage();

send_mail.IsBodyHtml = true;
//address from where mail will be sent.
send_mail.From = new MailAddress("from@gmail.com");
//address to which mail will be sent.           
send_mail.To.Add(new MailAddress("to@example.com");
//subject of the mail.
send_mail.Subject = "put any subject here";

send_mail.Body = messageBody;
client.Send(send_mail);

2
tin nhắn send_mail = MailMessage mới (); Làm thế nào là dòng này giả sử để làm việc? Bạn không thể chuyển đổi hoàn toàn 'System.Net.Mail.MailMessage' thành 'System.Windows.Forms.Message'
Debaprasad 18/03/2016

9

Bao gồm điều này,

using System.Net.Mail;

Và sau đó,

MailMessage sendmsg = new MailMessage(SendersAddress, ReceiversAddress, subject, body); 
SmtpClient client = new SmtpClient("smtp.gmail.com");

client.Port = Convert.ToInt16("587");
client.Credentials = new System.Net.NetworkCredential("mail-id@gmail.com","password");
client.EnableSsl = true;

client.Send(sendmsg);

8

Nguồn : Gửi email trong ASP.NET C #

Dưới đây là một mã làm việc mẫu để gửi thư bằng C #, trong ví dụ dưới đây tôi đang sử dụng máy chủ smtp của google.

Mã này khá tự giải thích, thay thế email và mật khẩu bằng các giá trị email và mật khẩu của bạn.

public void SendEmail(string address, string subject, string message)
{
    string email = "yrshaikh.mail@gmail.com";
    string password = "put-your-GMAIL-password-here";

    var loginInfo = new NetworkCredential(email, password);
    var msg = new MailMessage();
    var smtpClient = new SmtpClient("smtp.gmail.com", 587);

    msg.From = new MailAddress(email);
    msg.To.Add(new MailAddress(address));
    msg.Subject = subject;
    msg.Body = message;
    msg.IsBodyHtml = true;

    smtpClient.EnableSsl = true;
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Credentials = loginInfo;
    smtpClient.Send(msg);
}

Thay vì var, tôi đã sử dụng tên lớp như NetworkCredential, MailMessage và SmtpClient. Nó hoạt động với tôi.
Kiểm tra Jui

7

Nếu bạn muốn gửi email nền, xin vui lòng làm như dưới đây

 public void SendEmail(string address, string subject, string message)
 {
 Thread threadSendMails;
 threadSendMails = new Thread(delegate()
    {

      //Place your Code here 

     });
  threadSendMails.IsBackground = true;
  threadSendMails.Start();
}

và thêm không gian tên

using System.Threading;


5

Thử cái này,

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

            mail.From = new MailAddress("your_email_address@gmail.com");
            mail.To.Add("to_address");
            mail.Subject = "Test Mail";
            mail.Body = "This is for testing SMTP mail from GMAIL";

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);
            MessageBox.Show("mail Send");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

4

sử dụng cách này

MailMessage sendmsg = new MailMessage(SendersAddress, ReceiversAddress, subject, body); 
SmtpClient client = new SmtpClient("smtp.gmail.com");

client.Port = Convert.ToInt32("587");
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("mail-id@gmail.com","MyPassWord");
client.Send(sendmsg);

Đừng quên điều này:

using System.Net;
using System.Net.Mail;

4

Để tránh các vấn đề bảo mật trong Gmail, trước tiên bạn nên tạo mật khẩu ứng dụng từ cài đặt Gmail của mình và bạn có thể sử dụng mật khẩu này thay vì mật khẩu thực để gửi email ngay cả khi bạn sử dụng xác minh hai bước.


3

Thay đổi người gửi trên email Gmail / Outlook.com:

Để tránh giả mạo - Gmail / Outlook.com sẽ không cho phép bạn gửi từ tên tài khoản người dùng tùy ý.

Nếu bạn có số lượng người gửi hạn chế, bạn có thể làm theo các hướng dẫn sau đó đặt Fromtrường thành địa chỉ này: Gửi thư từ một địa chỉ khác

Nếu bạn muốn gửi từ một địa chỉ email tùy ý (chẳng hạn như mẫu phản hồi trên trang web nơi người dùng nhập email của họ và bạn không muốn họ gửi email trực tiếp cho bạn) về cách tốt nhất bạn có thể làm là:

        msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));

Điều này sẽ cho phép bạn chỉ cần nhấn 'trả lời' trong tài khoản email của mình để trả lời người hâm mộ của ban nhạc của bạn trên trang phản hồi, nhưng họ sẽ không nhận được email thực sự của bạn có thể dẫn đến hàng tấn thư rác.

Nếu bạn đang ở trong một môi trường được kiểm soát, điều này hoạt động rất tốt, nhưng xin lưu ý rằng tôi đã thấy một số ứng dụng email được gửi đến địa chỉ ngay cả khi trả lời được chỉ định (tôi không biết là gì).


3

Tôi cũng gặp vấn đề tương tự, nhưng nó đã được giải quyết bằng cách vào cài đặt bảo mật của gmail và cho phép các ứng dụng kém an toàn hơn . Mã từ Domenic & Donny hoạt động, nhưng chỉ khi bạn bật cài đặt đó

Nếu bạn đã đăng nhập (với Google), bạn có thể theo liên kết này và chuyển đổi "Bật" cho "Truy cập cho các ứng dụng kém an toàn hơn"


3
using System;
using System.Net;
using System.Net.Mail;

namespace SendMailViaGmail
{
   class Program
   {
   static void Main(string[] args)
   {

      //Specify senders gmail address
      string SendersAddress = "Sendersaddress@gmail.com";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "ReceiversAddress@yahoo.com";
      //Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
      const string SendersPassword = "Password";
      //Write the subject of ur mail
      const string subject = "Testing";
      //Write the contents of your mail
      const string body = "Hi This Is my Mail From Gmail";

      try
      {
        //we will use Smtp client which allows us to send email using SMTP Protocol
        //i have specified the properties of SmtpClient smtp within{}
        //gmails smtp server name is smtp.gmail.com and port number is 587
        SmtpClient smtp = new SmtpClient
        {
           Host = "smtp.gmail.com",
           Port = 587,
           EnableSsl = true,
           DeliveryMethod = SmtpDeliveryMethod.Network,
           Credentials = new NetworkCredential(SendersAddress, SendersPassword),
           Timeout = 3000
        };

        //MailMessage represents a mail message
        //it is 4 parameters(From,TO,subject,body)

        MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
        /*WE use smtp sever we specified above to send the message(MailMessage message)*/

        smtp.Send(message);
        Console.WriteLine("Message Sent Successfully");
        Console.ReadKey();
     }
     catch (Exception ex)
     {
        Console.WriteLine(ex.Message);
        Console.ReadKey();
     }
}
}
}

2

Đây là một phương pháp để gửi thư và nhận thông tin đăng nhập từ web.config:

public static string SendEmail(string To, string Subject, string Msg, bool bodyHtml = false, bool test = false, Stream AttachmentStream = null, string AttachmentType = null, string AttachmentFileName = null)
{
    try
    {
        System.Net.Mail.MailMessage newMsg = new System.Net.Mail.MailMessage(System.Configuration.ConfigurationManager.AppSettings["mailCfg"], To, Subject, Msg);
        newMsg.BodyEncoding = System.Text.Encoding.UTF8;
        newMsg.HeadersEncoding = System.Text.Encoding.UTF8;
        newMsg.SubjectEncoding = System.Text.Encoding.UTF8;

        System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
        if (AttachmentStream != null && AttachmentType != null && AttachmentFileName != null)
        {
            System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentStream, AttachmentFileName);
            System.Net.Mime.ContentDisposition disposition = attachment.ContentDisposition;
            disposition.FileName = AttachmentFileName;
            disposition.DispositionType = System.Net.Mime.DispositionTypeNames.Attachment;

            newMsg.Attachments.Add(attachment);
        }
        if (test)
        {
            smtpClient.PickupDirectoryLocation = "C:\\TestEmail";
            smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
        }
        else
        {
            //smtpClient.EnableSsl = true;
        }

        newMsg.IsBodyHtml = bodyHtml;
        smtpClient.Send(newMsg);
        return SENT_OK;
    }
    catch (Exception ex)
    {

        return "Error: " + ex.Message
             + "<br/><br/>Inner Exception: "
             + ex.InnerException;
    }

}

Và phần tương ứng trong web.config:

<appSettings>
    <add key="mailCfg" value="yourmail@example.com"/>
</appSettings>
<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="yourmail@example.com">
      <network defaultCredentials="false" host="mail.exapmple.com" userName="yourmail@example.com" password="your_password" port="25"/>
    </smtp>
  </mailSettings>
</system.net>

2

Hãy thử cái này

public static bool Send(string receiverEmail, string ReceiverName, string subject, string body)
{
        MailMessage mailMessage = new MailMessage();
        MailAddress mailAddress = new MailAddress("abc@gmail.com", "Sender Name"); // abc@gmail.com = input Sender Email Address 
        mailMessage.From = mailAddress;
        mailAddress = new MailAddress(receiverEmail, ReceiverName);
        mailMessage.To.Add(mailAddress);
        mailMessage.Subject = subject;
        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;

        SmtpClient mailSender = new SmtpClient("smtp.gmail.com", 587)
        {
            EnableSsl = true,
            UseDefaultCredentials = false,
            DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
            Credentials = new NetworkCredential("abc@gmail.com", "pass")   // abc@gmail.com = input sender email address  
                                                                           //pass = sender email password
        };

        try
        {
            mailSender.Send(mailMessage);
            return true;
        }
        catch (SmtpFailedRecipientException ex)
        { 
          // Write the exception to a Log file.
        }
        catch (SmtpException ex)
        { 
           // Write the exception to a Log file.
        }
        finally
        {
            mailSender = null;
            mailMessage.Dispose();
        }
        return false;
}

1

Vấn đề đối với tôi là mật khẩu của tôi có dấu gạch chéo "\" trong đó, tôi sao chép đã dán mà không nhận ra rằng nó sẽ gây ra vấn đề.


1

Sao chép từ một câu trả lời khác , các phương pháp trên hoạt động nhưng gmail luôn thay thế email "từ" và "trả lời" bằng tài khoản gmail gửi thực tế. rõ ràng có một công việc xung quanh tuy nhiên:

http://karmic-development.blogspot.in/2013/10/send-email-from-aspnet-USE-gmail-as.html

"3. Trong tab Tài khoản, nhấp vào liên kết" Thêm địa chỉ email khác bạn sở hữu "sau đó xác minh nó"

Hoặc có thể này

Cập nhật 3: Trình đọc Derek Bennett nói: "Giải pháp là vào Cài đặt gmail của bạn: Tài khoản và" Đặt mặc định "một tài khoản không phải là tài khoản gmail của bạn. Điều này sẽ khiến gmail viết lại trường Từ với bất kỳ email nào của tài khoản mặc định địa chỉ là."


1

Bạn có thể thử Mailkit. Nó cung cấp cho bạn chức năng tốt hơn và nâng cao để gửi thư. Bạn có thể tìm thêm từ này Dưới đây là một ví dụ

    MimeMessage message = new MimeMessage();
    message.From.Add(new MailboxAddress("FromName", "YOU_FROM_ADDRESS@gmail.com"));
    message.To.Add(new MailboxAddress("ToName", "YOU_TO_ADDRESS@gmail.com"));
    message.Subject = "MyEmailSubject";

    message.Body = new TextPart("plain")
    {
        Text = @"MyEmailBodyOnlyTextPart"
    };

    using (var client = new SmtpClient())
    {
        client.Connect("SERVER", 25); // 25 is port you can change accordingly

        // Note: since we don't have an OAuth2 token, disable
        // the XOAUTH2 authentication mechanism.
        client.AuthenticationMechanisms.Remove("XOAUTH2");

        // Note: only needed if the SMTP server requires authentication
        client.Authenticate("YOUR_USER_NAME", "YOUR_PASSWORD");

        client.Send(message);
        client.Disconnect(true);
    }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.