I was building a project that sends e-mails from my website to an account using SMTP with the Asp.NET Framework with MVC, but, when I try to send the e-mail it catches the next exception
The SMTP server requires a secure connection, or the client did not authenticate. The server response was: 5.7.0 Authentication Required
This is the code inside the try
MailMessage message = new MailMessage();
message.From = new MailAddress("myemailfortesting#gmail.com");
message.To.Add(new MailAddress(contact.Email));
message.Subject = "Test";
message.IsBodyHtml = true;
message.Body = "Name:" + contact.Name+ "Message:" + contact.Text;
using (SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587))
{
smtpClient.Credentials = new NetworkCredential("myemailfortesting#gmail.com", "p455w0rD");
smtpClient.EnableSsl = true;
smtpClient.Send(message);
}
The connection string in Views/Share/Web.config
<system.net>
<mailSettings>
<smtp from="myemailfortesting#gmail.com">
<network host="smtp.gmail.com" port="587" userName="myemailfortesting#gmail.com" password="p455w0rD" defaultCredentials="true" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
I've already turn on the Less secure apps in my destination Google account.
What could be wrong here?
Related
I have an issue where emails are sent out correctly when executed in unit testing in Visual Studio.
However, the exact same piece of code and configuration does not work on IIS.
Instead I receive a IO Exception error:
System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: The handshake failed due to an unexpected packet format
public void SendEmail(List<string> toAddress, string fromAddress, string subject, string htmlBody)
{
var mail = new MailMessage();
mail.From = new MailAddress(fromAddress);
toAddress.ForEach(x=>mail.To.Add(x));
var client = new SmtpClient();
mail.Subject = subject;
mail.Body = htmlBody;
mail.IsBodyHtml = true;
client.Send(mail);
}
<system.net>
<mailSettings>
<smtp from="mail#domain.com.au">
<network host="mail.blah.com.au" port="26" userName="username" password="password" enableSsl="false"
defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
Anyone had similar experience?
I have hosted a website from Godaddy hosting in Windows ASP.net and have purchased an email also from there as well.
On that website, there is a ContactUs Page in which any visitor could fill in his details and Submit.
For this I am internally using my personal gmail id as 'From' and my info email ID as 'To' to send the email.
I am using the sample code they provided on their website as this link.
But I am getting this error:
An exception of type 'System.Net.Mail.SmtpException' occurred in System.dll but was not handled in user code.
Additional information: Service not available, closing transmission channel. The server response was: Cannot connect to SMTP server 72.167.234.197 (72.167.234.197:25), connect error 10060
On client.Send(message)
This is my web.config entry as per that link:
<system.net>
<mailSettings>
<smtp from="personalID#gmail.com">
<network host="relay-hosting.secureserver.net" port="25" />
</smtp>
</mailSettings>
</system.net>
And this is my code to send email:
StringBuilder body = new StringBuilder();
body.AppendLine("<h3>New Query Received:</h3>");
body.AppendLine();
body.AppendFormat("Name : {0}<br />", txtName.Text);
body.AppendFormat("Email : {0}<br />", txtEmail.Text);
body.AppendFormat("Phone : {0}<br />", txtMobile.Text);
body.AppendFormat("Query : {0}<br />", txtQuery.Text);
MailMessage message = new MailMessage();
message.From = new MailAddress("manish.rnsconsultancy#gmail.com");
message.To.Add(new MailAddress("info#rns-consultancy.com"));
message.Subject = "New Query from Website";
message.Body = body.ToString();
SmtpClient client = new SmtpClient();
client.Send(message);
Can anyone please help me in this matter, I am stuck on this as their customer support doesn't know other than that link.
I tried switching the emails as From and To also, but got the same error.
try this code to send email.
Send email using System.Net.Mail
To send mail using System.Net.Mail, you need to configure your SMTP service in your application's web.config file using these values for mailSettings:
<system.net>
<mailSettings>
<smtp from="your email address">
<network host="relay-hosting.secureserver.net" port="25" />
</smtp>
</mailSettings>
</system.net>
The network rule's value will be used when you instantiate an SmtpClient in your code.
PS: Please change port 3535 if you have problems with 25
C# code example
You can then use code similar to this to send email from your application:
MailMessage message = new MailMessage();
message.From = new MailAddress("your email address");
message.To.Add(new MailAddress("your recipient"));
message.Subject = "your subject";
message.Body = "content of your email";
SmtpClient client = new SmtpClient();
client.Send(message);
after checking you DNS record i found
smtp.asia.secureserver.net
Use this code and Add your password
var message = new MailMessage();
message.To.Add(new MailAddress("info#rns-consultancy.com"));
message.From = new MailAddress("info#rns-consultancy.com");
message.Subject = "Subject";
message.Body = "Body";
var smtpClient = new SmtpClient();
smtpClient.Host = "smtp.asia.secureserver.net";
smtpClient.Port = 25;
smtpClient.EnableSsl = false;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials =
new NetworkCredential("info#rns-consultancy.com", "Password");
//smtpClient.Port = 465;
//smtpClient.EnableSsl = true;
//smtpClient.Timeout = 10000;
// don't use 100000 in production it's 2 match
//, just for testing
smtpClient.Timeout = 100000;
smtpClient.Send(message);
refrences
Google Public DNS
Mail server addresses and ports for Business Email | Workspace Email - GoDaddy Help SG
Network Tools: DNS,IP,Email
Solved: Not able to send email via C#. - GoDaddy Community
What type of hosting account do I have? | GoDaddy Help AE
c# - SecurityException: Request for the permission of type 'System.Net.Mail.SmtpPermission' - Stack Overflow
My website is hosted on a Godaddy server. I am trying to send an email but i am getting "The operation has timed out." error. I have tried following links but its not working.
GoDaddy email sending failed
and
Not Able To Send Email Via C#
I have tried so far below code.
In web.config
<system.net>
<mailSettings>
<smtp>
<network host="smtpout.secureserver.net" userName="username" password="secret" />
</smtp>
</mailSettings>
</system.net>
and in code behind
var SmtpClient = new SmtpClient();
SmtpClient.Send(frommail,tomail,subject,body);
I have also tried below code
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress(txtForgotEmail.Text));
msg.From = new MailAddress("email");
msg.Subject = "subject";
msg.Body = "msg body"
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("toemail", "secret");
client.Port = 25;
client.UseDefaultCredentials = false;
client.Send(msg);
P.S. i cant even send an email from localhost and also tried
client.EnableSsl = false;
client.UseDefaultCredentials = false;
Try adding port to settings
<network host="smtpout.secureserver.net" userName="username" password="secret" port=25/>
For what ports to use refer,
https://sg.godaddy.com/help/what-do-i-do-if-i-have-trouble-connecting-to-my-email-account-319
try all 25, 80, 3535 and 465 with SSL
This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
send email asp.net c#
I have sent mail several times using the technique several times before but somehow it doesnt work i am providing the code in the following:
MailMessage myMailMessage = new MailMessage();
myMailMessage.Subject = "Response From Client";
myMailMessage.Body = "hello word";
myMailMessage.From = new MailAddress("mymail#gmail.com", "jub");
myMailMessage.To.Add(new MailAddress("mymail#gmail.com", "Softden"));
SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.Send(myMailMessage);
and my web.config is:
<mailSettings>
<smtp deliveryMethod = "Network" from="Jubair <mymail#gmail.com>">
<network defaultCredentials="false" enableSsl="true" userName="mymail#gmail.com" password="Mypassword" host="smtp.gmail.com" port="587"></network>
</smtp>
</mailSettings>
it says the smtp server requires a secure connection or the client was not authenticated.. Please help
Try adding something like this
Per Dominic's answer on Stackoverflow look at he following example
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);
}
//----------------- A simple approach below ---------------
I just tested this below and it works
var mail = new MailMessage();
// Set the to and from addresses.
// The from address must be your GMail account
mail.From = new MailAddress("noreplyXYZ#gmail.com");
mail.To.Add(new MailAddress(to));
// Define the message
mail.Subject = subject;
mail.IsBodyHtml = isHtml;
mail.Body = message;
// Create a new Smpt Client using Google's servers
var mailclient = new SmtpClient();
mailclient.Host = "smtp.gmail.com";//ForGmail
mailclient.Port = 587; //ForGmail
// This is the critical part, you must enable SSL
mailclient.EnableSsl = true;//ForGmail
//mailclient.EnableSsl = false;
mailclient.UseDefaultCredentials = true;
// Specify your authentication details
mailclient.Credentials = new System.Net.NetworkCredential("fromAddress#gmail.com", "xxxx123");//ForGmail
mailclient.Send(mail);
mailclient.Dispose();
//The .config settings there are two options on how you could set this up I am suspecting that this is the issue you are having
<system.net>
<mailSettings>
<smtp from="from#gmail.com" deliveryMethod="Network">
<network userName="from#gmail.com" password="mypassword" host="smtp.gmail.com" port="587"/>
</smtp>
</mailSettings>
</system.net>
or option 2
<configuration>
<appSettings>
<add key="smtpClientHost" value="mail.localhost.com"/> //SMTP Client host name
<add key="portNumber" value="587"/>
<add key="fromAddress" value="yourEmailAddress#gmail.com"/>
</appSettings>
</configuration>
Send Email from Yahoo, Gmail, Hotmail (C#)
http://www.codeproject.com/Tips/520998/Send-Email-from-Yahoo-Gmail-Hotmail-Csharp
These are evry good tutorials with samples. make your demo email id. pass your id and its password as parameters. and send mail to anyone.
http://www.codeproject.com/Articles/15807/Easy-SMTP-Mail-Using-ASP-NET-2-0
http://www.codeproject.com/Tips/371417/Send-Mail-Contact-Form-using-ASP-NET-and-Csharp
http://www.codeproject.com/Tips/490604/Sending-mail-using-ASP-NET-with-optional-parameter
if you are still unable to send email make sure to change the port number. but 587 should work normally.
Make sure you contact the email server side to see what kind of authentication they accept to relay.
Here is the code i wrote to send email,
MailMessage m = new MailMessage();
SmtpClient sc = new SmtpClient();
sc.UseDefaultCredentials = false;
try
{
m.From = new MailAddress(Sender);
m.To.Add(new MailAddress(Receiver));
m.Subject = Subject;
m.IsBodyHtml = true;
m.Body = Body;
sc.Send(m);
}
catch (Exception ex) { _Exceptions.ManageExceptions(ex); }
And the config file settings:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="xxx#xxx.com">
<network host="192.168.0.170" userName="setsdom01\user1" password="xxx" port="25" />
</smtp>
</mailSettings>
</system.net>
It executes when i run it from my machine, i try on different PC and it is giving me the following message: ...message rejected as spam by content filtering..
What could be the problem?
I think you need to add NetworkCredential backend code.
var AuthenticationDetails = new NetworkCredential("xxx#", "xxxx");
sc.Credentials = AuthenticationDetails;
This might work
Also look this How to Enable and Configure the Spam Confidence Level Thresholds may be helpful