If I have sent a few messages in my iMessage app and I want to access previous messages (obviously just my own app-created messages, not just any messages the users have sent in their conversation), is there a way I can do that?
I can access the most previous message with this:
[self activeConversation].selectedMessage;
Any way to loop through previous messages that might not have even ever been clicked by the user (so simply storing it in user defaults is not an option)
There is no way to do this. Apple considers this to be a security/privacy issue.
Using a production key on Mandrill I am attempting to send an email. Previously this has worked without issue. However now, despite receiving a successful response from the API, visible in the api log, no email is being sent, and nothing is present in the outbound activity log.
If I check the api log for the message which appeared to fail it displays:
[
{
"email": [email_address],
"status": "sent",
"_id": [id],
"reject_reason": null
}
]
Replacing the id in the content view of a sent email, with the id from a failed one displays a correctly formatted email:
e.g. https://mandrillapp.com/activity/content?id=20151214_[put_the_id_here]
Is this a bug? What is causing it? Where can I see more information about what happened? How can I monitor if this happens again in the future? How can I prevent it from happening in the future?
I have been in contact with Mandrill support regarding the issue, which they described as 'very strange indeed'. Deleting the API key and generating a new one fixed the issue, but there is no explanation as to why this is they case, how to detect the problem, or how to stop it from happening again in the future.
The messages in question were never actually sent by Mandrill, and displayed no SMTP events, despite reporting as sent by their API
Something else to check is to make sure you're using a working API key instead of a test one. As the name suggests, test keys are designed to work just like a regular key, so the feedback to your program will be identical, but the messages won't actually be sent.
You can see if this is the problem by going to the Mandrill settings and looking at the list of API keys. Test keys have a very clear This is a test key message listed.
This probably won't be an issue if you generated the key yourself, but if you inherited this project it's worth taking a look.
I have faced a similar issue like this last week. The "sent" status only indicates that Mandrill sent it. But reception of the email message is confirmed only if there is a SMTP event corresponding to it with code starting with 2, (example 250 etc), in the info api response, like the following:
"smtp_events": [
{
"ts": 1442448422,
"type": "sent",
"diag": "250 SmtpThread-4622542-14682902148#ps-they-19.uk.miplecast.lan Received OK",
"source_ip": "505.207.171.171",
"destination_ip": "705.139.255.221",
"size": 29501
}
check this link for more info.
https://mandrill.zendesk.com/hc/en-us/articles/205582697-How-to-Confirm-If-an-Email-Was-Actually-Delivered
the issue could be on the recipient server as well, due which delivery could be delayed. In our experience last week, the message was delivered 4 hours after being Sent. we were not able to establish the reason yet why, this delay happened.
HTH,
I'm using sinch and I've gotten the client to work by registering a user, but I can't send a message. When I click my send button, nothing happens. The required methods that need to be implemented, such as messageFailed(), messageDelivered(), etc. are not being called either. Does anyone know why?
Have you registered the one more user? Can you enable logging and share the full log output.
See comment below, user tried to send message to self
I have a method in a model which processes an incoming bounced email. In cPanel, I have an email account forwarder called eblast-bounce#mydomain.com which is set to pipe to a program with the line
|/home/myaccount/my_rails_app/production/script/runner
'EBlast.receive(STDIN.read)' -e production`
The problem is that the entire contents of STDIN.read is dumped in the log. I don't want any of that. It gets dumped before the EBlast.receive method is even called because I put a custom log entry on the first line of that method and the email contents are logged before that is.
How do I stop STDIN.read from being logged? It's blowing up my log file.
EDIT: Maybe it isn't something that the script/runner is doing, but rather what mail server is doing somehow? I noticed that in my logs whenever I actually send AND receive the emails through the rails app, the email contents are logged. When the email is sent,
Sent mail to [email address]
appears before the email contents...when I receive an email through script/runner,
Received mail:
appears before the email contents.
Turns out it has to do with the logger function of action_mailer! I put ActionMailer::Base.logger = nil in environment.rb
Problem solved.
I am facing a little problem with Transport.send(msg) function of Blackberry API. In my application i need to send a sound file. But I want to know what happens if the device loses connectivity in middle of sending the email.
I tried to enclose the Transport.send(msg) call within try catch block but it never throws exception even if i manually turn off the wifi from the device while the file is being sent.If by any chance email could not be sent i want to show the user a Dialog saying that email could not be sent.
Kindly help.
Regards,
tek3
You can catch SendFailedException which is thrown when a message cannot be sent.
You can monitor the messages by calling getStatus() on a message which should return you the values given here