Но мой вопрос:
Можно ли отправить электронное письмо с помощью C#, как вы это делаете с PHP, где вам не нужно указывать учетные данные, сервер, порты и т. д.
Я хотел бы использовать C# вместо PHP, потому что я создаю веб-приложение ASP.Net.
Это мой текущий код C#:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
namespace $rootnamespace$
{
public partial class $safeitemname$ : Form
{
public $safeitemname$()
{
InitializeComponent();
}
private void AttachB_Click(object sender, EventArgs e)
{
if (AttachDia.ShowDialog() == DialogResult.OK)
{
string AttachF1 = AttachDia.FileName.ToString();
AttachTB.Text = AttachF1;
AttachPB.Visible = true;
AttachIIB.Visible = true;
AttachB.Visible = false;
}
}
private void AttachIIB_Click(object sender, EventArgs e)
{
if (AttachDia.ShowDialog() == DialogResult.OK)
{
string AttachF1 = AttachDia.FileName.ToString();
AttachIITB.Text = AttachF1;
AttachPB.Visible = true;
}
}
private void SendB_Click(object sender, EventArgs e)
{
try
{
SmtpClient client = new SmtpClient(EmailSmtpAdresTB.Text);
client.EnableSsl = true;
client.Timeout = 20000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(EmailUserNameTB.Text, EmailUserPasswordTB.Text);
MailMessage Msg = new MailMessage();
Msg.To.Add(SendToTB.Text);
Msg.From = new MailAddress(SendFromTB.Text);
Msg.Subject = SubjectTB.Text;
Msg.Body = EmailTB.Text;
/// Add Attachments to mail or Not
if (AttachTB.Text == "")
{
if (EmailSmtpPortTB.Text != null)
client.Port = System.Convert.ToInt32(EmailSmtpPortTB.Text);
client.Send(Msg);
MessageBox.Show("Successfuly Send Message !");
}
else
{
Msg.Attachments.Add(new Attachment(AttachTB.Text));
Msg.Attachments.Add(new Attachment(AttachIITB.Text));
if (EmailSmtpPortTB.Text != null)
client.Port = System.Convert.ToInt32(EmailSmtpPortTB.Text);
client.Send(Msg);
MessageBox.Show("Successfuly Send Message !");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void settingsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.settingsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.awDushiHomesDBDataSet);
}
private void awDushiHomesEmail_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'awDushiHomesDBDataSet.Settings' table. You can move, or remove it, as needed.
this.settingsTableAdapter.Fill(this.awDushiHomesDBDataSet.Settings);
}
}
}
Код: Выделить всё
--PHP-mixed-
Content-Type: multipart/alternative; boundary="PHP-alt-"
--PHP-alt-
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Hello World!!!
This is simple text email message.
--PHP-alt-
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Hello World!
This is something with HTML[/b] formatting.
--PHP-alt---
--PHP-mixed-
Content-Type: application/zip; name="Doc1.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
--PHP-mixed---
Редактировать:
Мой вопрос не в том, чтобы не использовать smtp-сервер, а в том, как отправить электронное письмо без необходимости ввода имени пользователя и пароля. Я знаю, что это сработает только в том случае, если запрос на отправку письма придет с моего сервера.
Мобильная версия