Как отправлять почту в ASP.Net с Google, Yahoo или других почтовых доменов? - PullRequest
0 голосов
/ 04 марта 2011

У меня есть страница «Связаться с нами», где пользователи будут указывать свой адрес электронной почты и запрос, а при отправке формы веб-администратор получит это письмо.

Если я настрою их почтовый идентификатор на «от» MailAddress и отправлю почту, это не удастся сделать, если идентификатор получен из популярных почтовых доменов, таких как gmail или hotmail, но будет работать с другими непопулярными или несуществующими доменамикак me@abcxyzmail.om без предоставленных учетных данных!

Он работал с gmail после того, как я правильно настроил SMTP и сетевые учетные данные.Цель состоит в том, чтобы администратор моего веб-сайта, получивший электронное письмо, мог нажать кнопку ответа в своем почтовом клиенте и увидеть поле «to», заполненное полем «from», заполненное страницей «contact us».Есть ли правильный способ сделать это или совет или трюк для достижения этой цели.

Вот мой код

    MailMessage emailMessage = new MailMessage();
    MailAddress emailTo = new MailAddress("admin@webdev.co.nz", "Web Dev");
    MailAddress emailFrom = new MailAddress(tbEmail.Text);
    SmtpClient localhost = new SmtpClient("localhost");

    emailMessage.To.Add(emailTo);
    emailMessage.From = emailFrom;
    emailMessage.Subject = "Enquiry / Feedback";
    emailMessage.Body = "Name: " + tbName.Text +
            "\nAddress: " + tbEmail.Text +
            "\nComments: " + tbComments.Text;//emails body

    localhost.Send(emailMessage);

Спасибо

Сид

Ответы [ 4 ]

0 голосов
/ 04 марта 2011

Добавить ответ в шапку

mail.Headers.Add( "Reply-To", "users.email.@hisprovider.com" );

Это заставит почтовый клиент заполнять этот адрес вместо адреса. Это то, что вы ищите. Приведенный выше код не проверен.

0 голосов
/ 04 марта 2011
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Net.Mail;


public class YourClass
{
    private void SendMailFromGmail(string vFrom, string vTo, string vGmailID, string vGmailPass, string vMailText, string vSMPTDNS, string vSubject)
    {
        MailMessage MyMailMessage = new MailMessage();
        SmtpClient SMTPServer = new SmtpClient(vSMPTDNS);
        var _with1 = SMTPServer;
        //Start by creating a mail message object

        //From requires an instance of the MailAddress type

        MyMailMessage.From = new MailAddress(vFrom);

        //To is a collection of MailAddress types
        MyMailMessage.To.Add(vTo);    
        MyMailMessage.Subject = vSubject;
        MyMailMessage.Body = vMailText;
        //Create the SMTPClient object and specify the SMTP GMail server
        _with1.Port = 587;

        _with1.Credentials = new System.Net.NetworkCredential(vGmailID, vGmailPass);
        _with1.EnableSsl = true;

        try {
            _with1.Send(MyMailMessage);
            string lNewVariable5 = "Email Sent";
        //MessageBox.Show(lNewVariable5)
        } catch (SmtpException ex) {
            throw ex;
        }
    }

    public void Main()
    {
        string vFrom = "from_address_here@gmail.com";
        string vTo = "to_address_here@domain_name_here";
        string vGmailID = "account uid";
        string vGmailPass = " account pwd";
        string vMailText = "This is the test text for Gmail email";
        string vSMPTDNS = "smtp.gmail.com";
        string vSubject = "GMail Test";

        SendMailFromGmail(vFrom, vTo, vGmailID, vGmailPass, vMailText, vSMPTDNS, vSubject);
    }



}
0 голосов
/ 04 марта 2011

Не уверен, почему у вас здесь проблемы - у нас есть несколько систем, которые делают это без проблем.Но почта - это привередливое и странное животное;Я бы поспорил на настройку конфигурации на сервере, чтобы все испортилось - какой у вас там контроль?

В любом случае, более правильный способ сделать это - использовать EmailMessage.ReplyTo (2.0 / 3.5) или EmailMessage.ReplyToList (4.0) для отправки сообщений.Это, вероятно, обойдёт любую конфигурацию на сервере, которая вызывает эту проблему.

0 голосов
/ 04 марта 2011

Это потому, что вы используете localhost для отправки электронной почты - вам нужен почтовый сервер. Если у вас действительно есть учетная запись GMail (или какая-либо другая) - используйте их сервер с правильными учетными данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...