কিভাবে এএসপি.নেট সি # তে ইমেল পাঠানো যায়


91

আমি এএসপি.এনইটি সি # এরিয়াতে খুব নতুন । আমি এএসপি.নেট সি # এর মাধ্যমে একটি মেইল ​​প্রেরণের পরিকল্পনা করছি এবং এটি আমার আইএসপি থেকে এসএমটিপি ঠিকানা :

smtp-proxy.tm.net.my

নীচে আমি যা করার চেষ্টা করেছি, কিন্তু ব্যর্থ হয়েছিল।

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SendMail" %>
<html>
<head id="Head1" runat="server"><title>Email Test Page</title></head>
<body>
    <form id="form1" runat="server">
        Message to: <asp:TextBox ID="txtTo" runat="server" /><br>
        Message from: <asp:TextBox ID="txtFrom" runat="server" /><br>
        Subject: <asp:TextBox ID="txtSubject" runat="server" /><br>
        Message Body:<br>
        <asp:TextBox ID="txtBody" runat="server" Height="171px" TextMode="MultiLine"  Width="270px" /><br>
        <asp:Button ID="Btn_SendMail" runat="server" onclick="Btn_SendMail_Click" Text="Send Email" /><br>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </form>
</body>
</html>

এবং নীচে আমার কোড-পিছনে রয়েছে :

using System;
using System.Web.UI.WebControls;
using System.Net.Mail;
public partial class SendMail : System.Web.UI.Page
{
    protected void Btn_SendMail_Click(object sender, EventArgs e)
    {
        MailMessage mailObj = new MailMessage(
            txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text);
        SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
        try
        {
            SMTPServer.Send(mailObj);
        }
        catch (Exception ex)
        {
            Label1.Text = ex.ToString();
        }
    }
}

পিএস: আমি দুঃখিত যে আমি প্রাপক / প্রেরক এসএমটিপি ধারণাটি বুঝতে পারি না এবং তাই আমি এখান থেকে পুরো ধারণাটি বোঝার চেষ্টা করছি।


আপনি বোতামটি ক্লিক করার পরে এটি কি কোডটির পিছনে পৌঁছায়?
কনরাড লটজ

আপনি লোকালহোস্টে আইআইএসে এসটিটিপি স্থাপন করেছিলেন? ব্যর্থতা কী? আপনার আইএসপি সহ কোনও মেইল ​​অ্যাকাউন্ট আছে?
মিস্টিগ

উত্তর:


115

কেবল নীচের কোডটি দিয়ে যান।

SmtpClient smtpClient = new SmtpClient("mail.MyWebsiteDomainName.com", 25);

smtpClient.Credentials = new System.Net.NetworkCredential("info@MyWebsiteDomainName.com", "myIDPassword");
// smtpClient.UseDefaultCredentials = true; // uncomment if you don't want to use the network credentials
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
MailMessage mail = new MailMessage();

//Setting From , To and CC
mail.From = new MailAddress("info@MyWebsiteDomainName", "MyWeb Site");
mail.To.Add(new MailAddress("info@MyWebsiteDomainName"));
mail.CC.Add(new MailAddress("MyEmailID@gmail.com"));

smtpClient.Send(mail);

থমোথারন স্পট অন। সরল পাঠ্য বা এইচটিএমএল বডি প্রেরণ। দ্রুত এবং নোংরা প্লে ইমেলগুলির জন্য। বার্তাটির শিরোনামে এইচটিএমএল ট্যাগ এম্বেড করার জন্য এখানে একটি ভাল উদাহরণ। ইনলাইন এইচটিএমএল কোড । স্ট্রিংবিল্ডার বৃহত্তর বার্তা তৈরি করতে খুব দরকারী। এছাড়াও
ব্রায়ান স্প্রিংবার্ট

13
আমি এটি সহায়ক বলে মনে করেছি। যদিও UseDefaultCredentials টি সত্য হিসাবে সেট করার অর্থ প্রদত্ত শংসাপত্রগুলি প্রেরণ করা হবে না, ডকুমেন্টেশন অনুসারে। এটি জটিল অংশটি বের করা।
গার গডফ্রে

11
নোট করুন MailMessageএবং SmtpClientবাস্তবায়ন IDisposableএবং উভয় একটি usingবিবৃতি মধ্যে ব্যবহার করা উচিত (বা অন্যথায় নিষ্পত্তি)
তাইজি 123

24

পরিবর্তে এই কোড ব্যবহার করার চেষ্টা করুন। দ্রষ্টব্য: "ঠিকানা থেকে" আপনার সঠিক ইমেল আইডি এবং পাসওয়ার্ড দিন।

protected void btn_send_Click(object sender, EventArgs e)
{

    System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
    mail.To.Add("to gmail address");
    mail.From = new MailAddress("from gmail address", "Email head", System.Text.Encoding.UTF8);
    mail.Subject = "This mail is send from asp.net application";
    mail.SubjectEncoding = System.Text.Encoding.UTF8;
    mail.Body = "This is Email Body Text";
    mail.BodyEncoding = System.Text.Encoding.UTF8;
    mail.IsBodyHtml = true;
    mail.Priority = MailPriority.High;
    SmtpClient client = new SmtpClient();
    client.Credentials = new System.Net.NetworkCredential("from gmail address", "your gmail account password");
    client.Port = 587;
    client.Host = "smtp.gmail.com";
    client.EnableSsl = true;
    try
    {
        client.Send(mail);
        Page.RegisterStartupScript("UserMsg", "<script>alert('Successfully Send...');if(alert){ window.location='SendMail.aspx';}</script>");
    }
    catch (Exception ex)
    {
        Exception ex2 = ex;
        string errorMessage = string.Empty;
        while (ex2 != null)
        {
            errorMessage += ex2.ToString();
            ex2 = ex2.InnerException;
        }
        Page.RegisterStartupScript("UserMsg", "<script>alert('Sending Failed...');if(alert){ window.location='SendMail.aspx';}</script>");
    }
}

সুতরাং আমার ড্রপডাউনলিস্ট / পাঠ্য বাক্সগুলির সাথে আমার এএসপি.net পৃষ্ঠায় একটি ফর্ম সেট আপ আছে। এটি কি একইভাবে কাজ করবে? ধন্যবাদ
সার্চফোরকনলজ

লোকাল সার্ভার বট এ এই কোডটি গডপ্যাডি সার্ভার হোস্টিং থেকে নয় .. কেন?
স্যাম অ্যালেক্স

10

আপনি এটি হটমেল ব্যবহার করে এটি ব্যবহার করে দেখতে পারেন: -

MailMessage o = new MailMessage("From", "To","Subject", "Body");
NetworkCredential netCred= new NetworkCredential("Sender Email","Sender Password");
SmtpClient smtpobj= new SmtpClient("smtp.live.com", 587); 
smtpobj.EnableSsl = true;
smtpobj.Credentials = netCred;
smtpobj.Send(o);

9

নিম্নলিখিত চেষ্টা করুন:

try
{
    var fromEmailAddress =  ConfigurationManager.AppSettings["FromEmailAddress"].ToString();
    var fromEmailDisplayName = ConfigurationManager.AppSettings["FromEmailDisplayName"].ToString();
    var fromEmailPassword = ConfigurationManager.AppSettings["FromEmailPassword"].ToString();
    var smtpHost = ConfigurationManager.AppSettings["SMTPHost"].ToString();
    var smtpPort = ConfigurationManager.AppSettings["SMTPPort"].ToString();

    string body = "Your registration has been done successfully. Thank you.";
    MailMessage message = new MailMessage(new MailAddress(fromEmailAddress, fromEmailDisplayName), new MailAddress(ud.LoginId, ud.FullName));
    message.Subject = "Thank You For Your Registration";
    message.IsBodyHtml = true;
    message.Body = body;

    var client = new SmtpClient();
    client.Credentials = new NetworkCredential(fromEmailAddress, fromEmailPassword);
    client.Host = smtpHost;
    client.EnableSsl = true;
    client.Port = !string.IsNullOrEmpty(smtpPort) ? Convert.ToInt32(smtpPort) : 0;
    client.Send(message);
}
catch (Exception ex)
{
    throw (new Exception("Mail send failed to loginId " + ud.LoginId + ", though registration done."));
}

এবং তারপরে আপনার ওয়েবকনফিগের মধ্যে নিম্নলিখিতটি যুক্ত করুন

<!--Email Config-->
<add key="FromEmailAddress" value="sender emailaddress"/>
<add key="FromEmailDisplayName" value="Display Name"/>
<add key="FromEmailPassword" value="sender Password"/>
<add key="SMTPHost" value="smtp-proxy.tm.net.my"/>
<add key="SMTPPort" value="smptp Port"/>

3

আপনি মেলকিট চেষ্টা করতে পারেন মেলকিট একটি ওপেন সোর্স ক্রস প্ল্যাটফর্ম। নেট মেল-ক্লায়েন্ট লাইব্রেরি যা মাইমকিটের উপর ভিত্তি করে মোবাইল ডিভাইসগুলির জন্য অনুকূলিত ized আপনি আপনার অ্যাপ্লিকেশনটিতে সহজেই ব্যবহার করতে পারেন You আপনি এখান থেকে ডাউনলোড করতে পারেন ।

                MimeMessage mailMessage = new MimeMessage();
                mailMessage.From.Add(new MailboxAddress(fromName, from@address.com));
                mailMessage.Sender = new MailboxAddress(senderName, sender@address.com);
                mailMessage.To.Add(new MailboxAddress(emailid, emailid));
                mailMessage.Subject = subject;
                mailMessage.ReplyTo.Add(new MailboxAddress(replyToAddress));
                mailMessage.Subject = subject;
                var builder = new BodyBuilder();
                builder.TextBody = "Hello There";           
                try
                {
                    using (var smtpClient = new SmtpClient())
                    {
                        smtpClient.Connect("HostName", "Port", MailKit.Security.SecureSocketOptions.None);
                        smtpClient.Authenticate("user@name.com", "password");

                        smtpClient.Send(mailMessage);
                        Console.WriteLine("Success");
                    }
                }
                catch (SmtpCommandException ex)
                {
                    Console.WriteLine(ex.ToString());              
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());                
                }              

2

এটি পরীক্ষা করে দেখুন .... এটি কাজ করে

http://www.aspnettutorials.com/tutorials/email/email-aspnet2-csharp/

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage message = new MailMessage(txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text);
            SmtpClient emailClient = new SmtpClient(txtSMTPServer.Text);
            emailClient.Send(message);
            litStatus.Text = "Message Sent";
        }
        catch (Exception ex)
        {
            litStatus.Text=ex.ToString();
        }
    }
}

উপরের লিঙ্কটি কাজ করে না, এখানে আপনি এসপি নেট ওয়েব-ফর্মটিতে ইমেল প্রেরণের জন্য ধাপে ধাপে গাইড পরীক্ষা করতে পারেন: qawithexperts.com/article/asp-net/…
ব্যবহারকারী 3559462

0

আপনি যদি রেজারে আপনার ইমেল সংস্থাটি তৈরি করতে চান তবে আপনি মেলজুরি ব্যবহার করতে পারেন । এছাড়াও, আপনি এখান থেকে নুগেট প্যাকেজটি ডাউনলোড করতে পারেন ।

// template path
var viewPath = Path.Combine("Views/Emails", "hello.cshtml");
// read the content of template and pass it to the Email constructor
var template = File.ReadAllText(viewPath);

var email = new Email(template);

// set ViewBag properties
email.ViewBag.Name = "Johnny";
email.ViewBag.Content = "Mailzory Is Funny";

// send email
var task = email.SendAsync("mailzory@outlook.com", "subject");
task.Wait()

0

এটা অনুসারে :

শ্রীমতিপ্লিয়েন্ট এবং এর ধরণের নেটওয়ার্কগুলি খারাপভাবে ডিজাইন করা হয়েছে, আমরা আপনাকে পরিবর্তে https://github.com/jstedfast/MailKit এবং https://github.com/jstedfast/MimeKit ব্যবহার করার পরামর্শ দিচ্ছি।

তথ্যসূত্র: https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.8

MailKitইমেল প্রেরণের জন্য এটি ব্যবহার করা ভাল :

var message = new MimeMessage ();
            message.From.Add (new MailboxAddress ("Joey Tribbiani", "joey@friends.com"));
            message.To.Add (new MailboxAddress ("Mrs. Chanandler Bong", "chandler@friends.com"));
            message.Subject = "How you doin'?";

            message.Body = new TextPart ("plain") {
                Text = @"Hey Chandler,
I just wanted to let you know that Monica and I were going to go play some paintball, you in?
-- Joey"
            };

            using (var client = new SmtpClient ()) {
                // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
                client.ServerCertificateValidationCallback = (s,c,h,e) => true;

                client.Connect ("smtp.friends.com", 587, false);

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

                client.Send (message);
                client.Disconnect (true);
            }

-1
MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text);
mm.Subject = txtSubject.Text;
mm.Body = txtBody.Text;
if (fuAttachment.HasFile)//file upload select or not
{
    string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
    mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text);
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
Response.write("Send Mail");

ভিডিও দেখুন: https://www.youtube.com/watch?v=bUUNv-19QAI


-1

এটি পরীক্ষা করা সবচেয়ে সহজ স্ক্রিপ্ট।

<%@ Import Namespace="System.Net" %> 
<%@ Import Namespace="System.Net.Mail" %> 

<script language="C#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
       //create the mail message 
        MailMessage mail = new MailMessage(); 

        //set the addresses 
        mail.From = new MailAddress("From email account"); 
        mail.To.Add("To email account"); 

        //set the content 
        mail.Subject = "This is a test email from C# script"; 
        mail.Body = "This is a test email from C# script"; 
        //send the message 
         SmtpClient smtp = new SmtpClient("mail.domainname.com"); 

         NetworkCredential Credentials = new NetworkCredential("to email account", "Password"); 
         smtp.Credentials = Credentials;
         smtp.Send(mail); 
         lblMessage.Text = "Mail Sent"; 
    } 
</script> 
<html> 
<body> 
    <form runat="server"> 
        <asp:Label id="lblMessage" runat="server"></asp:Label> 
    </form> 
</body>

4
আপনি কেন এটিকে দর্শনে রাখবেন এবং নিয়ামককে এটি পরিচালনা করতে দেবেন না?
হোয়াটপয়েন্টে

এএসপি.নেট সি # এর মাধ্যমে ইমেল প্রেরণের বিষয়ে প্রশ্নটি কেবল জিজ্ঞাসা করা হয়েছিল। স্ক্রিপ্টে নিয়ামক সেট করার কথা বলা হয়নি।
হিরেন পারঘি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.