I have used the following code to send mail from my web application using a gmail account. My question is, can i change the sender address to another address other than original sender(gmail) address? My code is as follows:
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("sample@gmail.com", "*******");
Whatever i do is useless as i always receive mail from sample@gmail.com
. Is it possible to change it?
I have changed to
mail.From = new System.Net.Mail.MailAddress("sample@yahoo.com");
but i received the mail with the from address sample@gmail.com
and not from the new "From" address. I think gmail smtp overwrites the from address with the original credential.
Gmail doesn't allow you to change the FROM to something different than your gmail account.
It doesn't matter what you use, they over-write it, before they relay it on. This prevent spamming/spoofing.
This is the solution:
- use the codes above to set mail.From = new MailAddress(address, display name)
- in Gmail, go to Mail Settings >> Accounts and Import.
- Add the email account you will use as sender in "Send Mail As". (tick as Alias)
This works for me
Yes just use the From property of the MailMessage
eg.
mail.From = "newemail@email.com";
EDIT: Also, see this post for more detailed info on how to emails via gmail in C#
Sending email in .NET through Gmail
EDIT: Although this works for mail in general, it appears this won't work for gmail as google overwrite it before its sent (see @Dave wanta's answer)
If you have a limited number of senders you can do as @philip suggested. For instance you may have customerservice@example.com
, simon@example.com
and philip@example.com
or even alias@example.com
. As long as they are approved senders on the actual gmail.com
website you can send from them.
Gmail.com : Sending mail from a different address
If you are expecting to send from an arbitrary user (such as a customer service form on a website where the user enters their email and you don't want them emailing you directly) about the best you can do is this :
msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));
If you're in a controlled environment this works great, but please note that I've seen some email clients send to the from address even when reply-to is specified (I don't know which).
Check #56 and #58. They might be relevant to what you want to do https://code.google.com/p/google-apps-script-issues/issues/detail?id=172
来源:https://stackoverflow.com/questions/3871577/change-sender-address-when-sending-mail-through-gmail-in-c-sharp