is it possible to hide email adress in javax.mail.MimeMessage? - java

I'm using the following code to create and send an email to someTo#bla.com:
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("someone#bla.com", "From Me"));
And when I receive the mail I see (in outlook, for example) : From Me <someone#bla.com>
Is it possible to hide the email address? I would like to see the full email address only when the receiver hits "Replay" but not before.

No, there is no way to hide the address of the sender when you (your program) is the sender. Some email clients may have the ability to do that, but in general it is probably a bad practice because it makes it harder to tell who sent the email, making it easier for spamers and phishers.
One way you could hide your email address would be to use a proxy service that sends and receives emails on your behalf and acts as a simple forwarding proxy (this is what craigslist does), but that starts to drift into the real of sketchy practices.

Short answer is no. That is a configuration option usually on the users mail client. It is there to help users avoid PHISHING scams and other unscrupulous email attacks.

Related

Get Email Details through IMAP

I used javax.mail to get Emails. I'm able to fetch email details like attachments, cc, bcc, from, to, text, subject. The issue I'm facing is It is getting only that email not all the messages in that email. Let suppose A sent email to B and B replied back to A. Then again replied to B. Now if I'm login with A's profile and I fetch INBOX folder of A. I get this email and when I check message.content() of that email It shows only reply of B. I want to get content of first message and third message sent by A as both of the messages belong to this thread.
IIRC conversation threads are implementation dependent cause it's not enforced nor covered in the IMAP RFC. There are some servers like gmail that lets you configure those settings. In your case it might be possible to read a specific message and then performing other IMAP verbs to retrieve the rest of the thread.
More info: https://www.rfc-editor.org/rfc/rfc3501

New to Email Parser in Java, facing issue when reading the subject

How do I read the original subject of the kick back email received from the mail delivery system.
I am doing it this way: messageSubject = message.getSubject(); which actually returns the wrong one i.e ”Delivery status notification” (this one I can see under subject of view message details of kick back email).
It is normal for a "bounce" email that you get in response to an email that cannot be delivered to have a different subject to the email that you sent. The original email may be included as an attachment to the notification.
The responses that you get in this scenario are not standardized and vary from one mail server (MTA) to another. If you are going to process them automatically, you will need to understand the structure of the responses you are getting from your MTA and potentially the remote MTA that are bouncing the emails.
You should probably start by looking at the bounce emails in your email to get an idea of their structure.

possible to have mutiple senders in a single SMTP email

we have those conditions:
we use Java API to send SMTP emails
currently all system emails are send from a sysAdmin#xx.com
the user who triggered the email, his email address get added into the cc field
I wander is it possible to move the user email address to the sender filed, so customers
would receive a single email send fromo both sysAdmin and the user?
Your question is not very well defined, but it sounds to me like you should put the user in From: and add Sender: sysAdmin#xx.com.
If your customers use a Microsoft client, it will display something silly like "From sysAdmin#xx.com on behalf of user#example.com" but then I suppose if they use Microsoft clients, you can't really win.

How do you send emails in android from any email address?

Hi I was following the answer to this question:
Sending Email in Android using JavaMail API without using the default/built-in app
but setting the sender in the method sendMail does not work.
I would like to be able to send mail from different addresses such as support#example.com, sales#example.com, etc... so that way when people reply to the emails they go to the correct addresses.
Edit: By does not work I mean whenever I get an email it is always from the account that you sign into using:
GMailSender sender = new GMailSender("username#gmail.com", "password");
and not the sender field that you fill out in the sendMail method:
sender.sendMail("This is Subject",
"This is Body",
"sender#gmail.com",
"recipiant#yahoo.com");
What do you mean "does not work"? If you don't provide full details, no-one can help you.
The chances are that the SMTP mail server you are using is blocking you from spoofing email addresses you do not own, and for good reason. It sounds like you are writing an app that will do things the user probably does not want it to do.
You should have your own email server set up for this. It will direct the email through your server, which will send the email under whatever email alias you like. That way the details will not be "incorrect" because the user should have an account with you which is logged into your server to send the email.

Sending same emails to many addresses

Hi
I have to send am mail(like an notification) to all the persons who fulfill some criteria.
The mail id will be taken from the database and sent the mail
Where should I look for the implementation in JAVA so that I can sent the a mail to many person.
Thanks
Have a look at the javax.mail Package
Links:
http://java.sun.com/products/javamail/javadocs/javax/mail/Message.html#addRecipient%28javax.mail.Message.RecipientType,%20javax.mail.Address%29
And as Message.RecipientType you should use Message.RecipientType.BCC to not showing the every address to every recipient
Google Keywords: Java Mail BCC
This is how to send email using Java: http://www.javabeat.net/tips/33-sending-mail-from-java.html
To send email to many addresses, just send the same email with different 'to' address
There are several ways to go about this. Assuming you know how to query the database to get the mail and recipients and how to actually send (a single) mail - it's really up to preferences.
Personally I prefer to simply put all recipients in "the BCC-field" and then actually send the mail to a dummy address or my own. That way none of the recipients will be disclosed to the others. If that is not an issue - just put 'em all in the "To-field".
(if in fact querying database and sending mail is the real issue - I'm sure there are quite a few references on this site)
The Apache Commons Email library in an excellent Java API for sending Email. You can use the approach taken by #mbanzon to send the list by adding Bcc fields.

Categories